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";
}
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
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) {
+ if ($verbose >= 2) {
print "@_\n";
}
}
sub warning {
- print "warning: @_\n";
+ if ($verbose >= 1) {
+ print "warning: @_\n";
+ }
}
sub darcs {
message "== $dir not present or not a repository; skipping";
}
}
- for my $pkg (`cat libraries/core-packages libraries/extra-packages`) {
+ for my $pkg (`cat libraries/boot-packages libraries/extra-packages`) {
chomp $pkg;
if (-d "libraries/$pkg") {
darcs (@_, "--repodir", "libraries/$pkg");
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) {
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 = 1;
+ }
+ elsif ($arg eq "-s") {
+ $verbose = 0;
+ }
+ 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 = 1;
+ }
+ last;
+ }
+ }
+
if ($#_ eq -1) {
die "What do you want to do?";
}