X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=push-all;h=3f3515ed23f6b8f133e04ebaae8278880d423990;hp=9ade0d43303f4676abd82c71da290f32747c1564;hb=dcf739bd7fb7de140be3bafb4ce211e2e5c7bba9;hpb=8434073f08470b4447436e865e25f5fe31852c23;ds=sidebyside diff --git a/push-all b/push-all index 9ade0d4..3f3515e 100644 --- a/push-all +++ b/push-all @@ -11,6 +11,10 @@ my $ignore_failure = 0; # --checked-out says we are pushing to a checked out tree my $checked_out = 0; +# --boot-only says we only want to push bootlibs, not extralibs +my $boot_only = 0; +# --push or --pull? +my $push_pull = "push"; sub message { if ($verbose) { @@ -30,7 +34,7 @@ sub darcs { } sub darcs_push { - darcs ("push", "--no-set-default", @_); + darcs ($push_pull, "--no-set-default", @_); } sub pushall { @@ -45,7 +49,10 @@ sub pushall { message "== $dir not present or not a repository; skipping"; } } - for my $pkg (`cat libraries/core-packages libraries/extra-packages`) { + my $library_lists = $boot_only + ? "libraries/boot-packages" + : "libraries/boot-packages libraries/extra-packages"; + for my $pkg (`cat $library_lists`) { chomp $pkg; $dir = "libraries/$pkg"; if (-d "$dir") { @@ -70,9 +77,21 @@ sub main { if ($arg eq "-q") { $verbose = 0; } + elsif ($arg eq "--ignore-failure") { + $ignore_failure = 1; + } elsif ($arg eq "--checked-out") { $checked_out = 1; } + elsif ($arg eq "--boot-only") { + $boot_only = 1; + } + elsif ($arg eq "--push") { + $push_pull = "push"; + } + elsif ($arg eq "--pull") { + $push_pull = "pull"; + } else { $reporoot = $arg; if (grep /^-q$/, @_) {