Refactor downloading code into download.mk Support multiple file downloads Support...
[openwrt/staging/chunkeey.git] / scripts / download.pl
index 543dcc1879e5288e838b811a007044a4baae12c8..161ae7f64b992aa6e1e50374214dccbe0638ec83 100755 (executable)
@@ -10,16 +10,15 @@ use strict;
 use warnings;
 use File::Basename;
 
+@ARGV > 2 or die "Syntax: $0 <target dir> <filename> <md5sum> [<mirror> ...]\n";
+
 my $target = shift @ARGV;
 my $filename = shift @ARGV;
 my $md5sum = shift @ARGV;
 my $scriptdir = dirname($0);
 my @mirrors;
-
 my $ok;
 
-@ARGV > 0 or die "Syntax: $0 <target dir> <filename> <md5sum> <mirror> [<mirror> ...]\n";
-
 sub localmirrors {
     my @mlist;
     open LM, "$scriptdir/localmirrors" and do {
@@ -112,15 +111,23 @@ foreach my $mirror (@ARGV) {
                        push @mirrors, "http://downloads.sourceforge.net/$1";
                }
        } elsif ($mirror =~ /^\@GNU\/(.+)$/) {
-               my $gnupath = $1;
-               push @mirrors, "ftp://ftp.gnu.org/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.belnet.be/mirror/ftp.gnu.org/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.mirror.nl/pub/mirror/gnu/$gnupath";
-               push @mirrors, "http://mirror.switch.ch/ftp/mirror/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.uu.net/archive/systems/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.eu.uu.net/pub/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.leo.org/pub/comp/os/unix/gnu/$gnupath";
-               push @mirrors, "ftp://ftp.digex.net/pub/gnu/$gnupath";
+               push @mirrors, "ftp://ftp.gnu.org/gnu/$1";
+               push @mirrors, "ftp://ftp.belnet.be/mirror/ftp.gnu.org/gnu/$1";
+               push @mirrors, "ftp://ftp.mirror.nl/pub/mirror/gnu/$1";
+               push @mirrors, "http://mirror.switch.ch/ftp/mirror/gnu/$1";
+               push @mirrors, "ftp://ftp.uu.net/archive/systems/gnu/$1";
+               push @mirrors, "ftp://ftp.eu.uu.net/pub/gnu/$1";
+               push @mirrors, "ftp://ftp.leo.org/pub/comp/os/unix/gnu/$1";
+               push @mirrors, "ftp://ftp.digex.net/pub/gnu/$1";
+       } elsif ($mirror =~ /^\@KERNEL\/(.+)$/) {
+               push @mirrors, "ftp://ftp.us.kernel.org/pub/$1";
+               push @mirrors, "http://ftp.us.kernel.org/pub/$1";
+               push @mirrors, "ftp://ftp.kernel.org/pub/$1";
+               push @mirrors, "http://ftp.kernel.org/pub/$1";
+               push @mirrors, "ftp://ftp.de.kernel.org/pub/$1";
+               push @mirrors, "http://ftp.de.kernel.org/pub/$1";
+               push @mirrors, "ftp://ftp.fr.kernel.org/pub/$1";
+               push @mirrors, "http://ftp.fr.kernel.org/pub/$1";
        } else {
                push @mirrors, $mirror;
        }