X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=darcs-all;h=046e589f5d9e54b5861735ff9bc5e81848ff78d3;hp=59e29e1c9d8e5f6df21523ffcc9481c05b71bf7d;hb=85cc239b47833892df0e70ce7c03f203f2ba4e6c;hpb=63cddb36f1dd2e3e41274f494873a62921d3f787 diff --git a/darcs-all b/darcs-all index 59e29e1..046e589 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"; } @@ -26,27 +31,27 @@ else { die "Couldn't work out defaultrepo"; } -my $verbose = 1; +my $verbose = 2; 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; sub message { - if ($verbose) { + if ($verbose >= 2) { print "@_\n"; } } sub warning { - print "warning: @_\n"; + if ($verbose >= 1) { + print "warning: @_\n"; + } } sub darcs { @@ -57,6 +62,7 @@ sub darcs { } sub darcsall { + my @packages; darcs @_; for my $dir (@top_dirs) { if (-d $dir && -d "$dir/_darcs") { @@ -66,12 +72,25 @@ 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") { - darcs (@_, "--repodir", "libraries/$pkg"); + for my $path () { + chomp $path; + if ($path =~ m#/(.*)/#) { + my $pkg = $1; + # bootstrapping.* are just copies of other repos; we don't + # update them directly. + if ($pkg !~ /bootstrapping/) { + 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"); } } @@ -92,7 +111,7 @@ sub darcsgetpackage { sub darcsget { my $r_flags; - if (! $complete && ! grep /(?:--complete|--partial)/, @_) { + if (! grep /(?:--complete|--partial)/, @_) { warning("adding --partial, to override use --complete"); $r_flags = [@_, "--partial"]; } @@ -107,10 +126,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) { @@ -129,10 +148,10 @@ sub main { # 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; + $verbose = 1; } - elsif ($arg eq "--complete") { - $complete = 1; + elsif ($arg eq "-s") { + $verbose = 0; } elsif ($arg eq "--extra") { $extra = 1; @@ -146,7 +165,7 @@ sub main { else { unshift @_, $arg; if (grep /^-q$/, @_) { - $verbose = 0; + $verbose = 1; } last; }