X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=darcs-all;h=7743e8a857eddd2a51457d36e6238319a19bfced;hp=30173c2fa57b56e166d5ca679f74a140d991815f;hb=a8427a4125e9b78e88a487eeabf018f1c6e8bc08;hpb=610379bc0660cc9df6bb8cfaa98e566157236026 diff --git a/darcs-all b/darcs-all index 30173c2..7743e8a 100644 --- a/darcs-all +++ b/darcs-all @@ -14,11 +14,16 @@ my $defaultrepo_lib; if ($defaultrepo =~ /:/) { # HTTP or SSH $defaultrepo_base = $defaultrepo; - $defaultrepo_base =~ s#/ghc$##; + $defaultrepo_base =~ s#/[^/]+/?$##; $defaultrepo_lib = "$defaultrepo_base/packages"; } elsif ($defaultrepo =~ /^\//) { - # Local filesystem (assumes a checked-out tree): + # Local filesystem, absolute path (assumes a checked-out tree): + $defaultrepo_base = $defaultrepo; + $defaultrepo_lib = "$defaultrepo/libraries"; +} +elsif ($defaultrepo =~ /^..\//) { + # Local filesystem, relative path (assumes a checked-out tree): $defaultrepo_base = $defaultrepo; $defaultrepo_lib = "$defaultrepo/libraries"; } @@ -37,26 +42,6 @@ my $extra = 0; my $nofib = 0; my $testsuite = 0; -while ($#_ ne -1) { - my $arg = shift; - if ($arg eq "-q") { - $verbose = 0; - } - elsif ($arg eq "--extra") { - $extra = 1; - } - elsif ($arg eq "--nofib") { - $nofib = 1; - } - elsif ($arg eq "--testsuite") { - $testsuite = 1; - } - else { - unshift @_, $arg; - last; - } -} - sub message { if ($verbose) { print "@_\n"; @@ -142,6 +127,31 @@ sub main { die "error: darcs-all must be run from the top level of the ghc tree." } + while ($#_ ne -1) { + my $arg = shift; + # We handle -q here as well as lower down as we need to skip over it + # if it comes before the darcs command + if ($arg eq "-q") { + $verbose = 0; + } + elsif ($arg eq "--extra") { + $extra = 1; + } + elsif ($arg eq "--nofib") { + $nofib = 1; + } + elsif ($arg eq "--testsuite") { + $testsuite = 1; + } + else { + unshift @_, $arg; + if (grep /^-q$/, @_) { + $verbose = 0; + } + last; + } + } + if ($#_ eq -1) { die "What do you want to do?"; }