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";
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 $testsuite = 0;
sub message {
- if ($verbose) {
+ if ($verbose >= 2) {
print "@_\n";
}
}
sub warning {
- print "warning: @_\n";
+ if ($verbose >= 1) {
+ print "warning: @_\n";
+ }
}
sub darcs {
}
sub darcsall {
+ my @packages;
darcs @_;
for my $dir (@top_dirs) {
if (-d $dir && -d "$dir/_darcs") {
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 (<libraries/*/_darcs>) {
+ 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");
}
}
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) {
# 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") {
else {
unshift @_, $arg;
if (grep /^-q$/, @_) {
- $verbose = 0;
+ $verbose = 1;
}
last;
}