X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=darcs-all;h=d25a9033556c6626bfc5625e6aa821ffd7a3d5b4;hp=1e773c92f1e9c9bf66f042650ff00c15b1c1fdad;hb=dbc1ed7e054a1c67cd34ff4776feea0d176e3bbb;hpb=a28ba79a751ec22728e9bdf4184524d72b038339 diff --git a/darcs-all b/darcs-all index 1e773c9..d25a903 100644 --- 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/core-packages libraries/extra-packages`) { - chomp $pkg; - if (-d "libraries/$pkg") { + for my $path () { + 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"); } } @@ -112,10 +124,10 @@ sub darcsget { my @packages; if ($extra) { - @packages = `cat core-packages extra-packages`; + @packages = `cat boot-packages extra-packages`; } else { - @packages = `cat core-packages`; + @packages = `cat boot-packages`; } for my $pkg (@packages) {