Type checking for type synonym families
[ghc-hetmet.git] / darcs-all
index 70cf165..f1934dc 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -11,14 +11,20 @@ chomp $defaultrepo;
 my $defaultrepo_base;
 my $defaultrepo_lib;
 
-if ($defaultrepo =~ /:/) {
+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):
+elsif (($defaultrepo =~ /^\//) or      # unix
+       ($defaultrepo =~ /^.:/)) {      # windows, e.g. c:
+    # 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";
 }
@@ -124,6 +130,8 @@ sub main {
 
     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;
         }
@@ -138,6 +146,9 @@ sub main {
         }
         else {
             unshift @_, $arg;
+            if (grep /^-q$/, @_) {
+                $verbose = 0;
+            }
             last;
         }
     }