Improve error reporting for type signatures
[ghc-hetmet.git] / darcs-all
index 30173c2..59e29e1 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -32,31 +32,13 @@ my $ignore_failure = 0;
 # --extra says we grab the extra libs with 'get'.  It has no effect on
 # the other commands.
 my $extra = 0;
+# --complete gets passed onto darcs get
+my $complete = 0;
 # --nofib/--testsuite tell get to also grab the respective repos.
 # They have no effect on the other commands.
 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";
@@ -110,7 +92,7 @@ sub darcsgetpackage {
 
 sub darcsget {
     my $r_flags;
-    if (! grep /(?:--complete|--partial)/, @_) {
+    if (! $complete && ! grep /(?:--complete|--partial)/, @_) {
         warning("adding --partial, to override use --complete");
         $r_flags = [@_, "--partial"];
     }
@@ -142,6 +124,34 @@ 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 "--complete") {
+            $complete = 1;
+        }
+        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?";
     }