X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=push-all;h=e48692397c44cb06523f63f4a34939e53c872d25;hp=9ade0d43303f4676abd82c71da290f32747c1564;hb=b494094bdec3f756010583342ce7bd1fed805281;hpb=8434073f08470b4447436e865e25f5fe31852c23 diff --git a/push-all b/push-all index 9ade0d4..e486923 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; +# --core-only says we only want to push corelibs, not extralibs +my $core_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 = $core_only + ? "libraries/core-packages" + : "libraries/core-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 "--core-only") { + $core_only = 1; + } + elsif ($arg eq "--push") { + $push_pull = "push"; + } + elsif ($arg eq "--pull") { + $push_pull = "pull"; + } else { $reporoot = $arg; if (grep /^-q$/, @_) {