Fix Haddock errors.
[ghc-hetmet.git] / darcs-all
index 24ed6f4..d25a903 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -11,8 +11,10 @@ chomp $defaultrepo;
 my $defaultrepo_base;
 my $defaultrepo_lib;
 
-if ($defaultrepo =~ /:/) {
+if ($defaultrepo =~ /^...*:/) {
     # HTTP or SSH
+    # Above regex says "at least two chars before the :", to avoid
+    # catching Win32 drives ("C:\").
     $defaultrepo_base = $defaultrepo;
     $defaultrepo_base =~ s#/[^/]+/?$##;
     $defaultrepo_lib = "$defaultrepo_base/packages";
@@ -62,6 +64,7 @@ sub darcs {
 }
 
 sub darcsall {
+    my @packages;
     darcs @_;
     for my $dir (@top_dirs) {
         if (-d $dir && -d "$dir/_darcs") {
@@ -71,12 +74,21 @@ sub darcsall {
             message "== $dir not present or not a repository; skipping";
         }
     }
-    for my $pkg (`cat libraries/boot-packages libraries/extra-packages`) {
-        chomp $pkg;
-        if (-d "libraries/$pkg") {
+    for my $path (<libraries/*/_darcs>) {
+        chomp $path;
+        if ($path =~ m#/(.*)/#) {
+            my $pkg = $1;
             darcs (@_, "--repodir", "libraries/$pkg");
         }
         else {
+            die "that pattern can't fail!";
+        }
+    }
+    @packages = `cat libraries/boot-packages`;
+    # @packages = `cat libraries/boot-packages libraries/extra-packages`;
+    for my $pkg (@packages) {
+        chomp $pkg;
+        if (! -d "libraries/$pkg") {
             warning("$pkg doesn't exist, use 'darcs-all get' to get it");
         }
     }