@ -8,16 +8,30 @@
use strict ;
use strict ;
use warnings ;
use warnings ;
use File::Basename ;
my $ target = shift @ ARGV ;
my $ target = shift @ ARGV ;
my $ filename = shift @ ARGV ;
my $ filename = shift @ ARGV ;
my $ md5sum = shift @ ARGV ;
my $ md5sum = shift @ ARGV ;
my $ scriptdir = dirname ( $ 0 ) ;
my @ mirrors ;
my @ mirrors ;
my $ ok ;
my $ ok ;
@ ARGV > 0 or die "Syntax: $0 <target dir> <filename> <md5sum> <mirror> [<mirror> ...]\n" ;
@ ARGV > 0 or die "Syntax: $0 <target dir> <filename> <md5sum> <mirror> [<mirror> ...]\n" ;
sub localmirrors {
my @ mlist ;
open LM , "$scriptdir/localmirrors" or return "" ;
while ( <LM> ) {
chomp $ _ ;
push @ mlist , $ _ ;
}
return @ mlist ;
}
sub which ($) {
sub which ($) {
my $ prog = shift ;
my $ prog = shift ;
my $ res = `which $prog` ;
my $ res = `which $prog` ;
@ -78,6 +92,8 @@ sub cleanup
unlink "$target/$filename.md5sum" ;
unlink "$target/$filename.md5sum" ;
}
}
@ mirrors = localmirrors ( ) ;
foreach my $ mirror ( @ ARGV ) {
foreach my $ mirror ( @ ARGV ) {
if ( $ mirror =~ /^\@SF\/(.+)$/ ) {
if ( $ mirror =~ /^\@SF\/(.+)$/ ) {
# give sourceforge a few more tries, because it redirects to different mirrors
# give sourceforge a few more tries, because it redirects to different mirrors