diff options
author | David Bauer <mail@david-bauer.net> | 2020-11-18 16:02:23 +0100 |
---|---|---|
committer | David Bauer <mail@david-bauer.net> | 2020-11-20 11:58:01 +0100 |
commit | 39c5635714aacac4e94f4ac60d191e9b0582d6b5 (patch) | |
tree | c54d43847b7b43a27a19b3898c253a3dc5d200c4 /scripts | |
parent | 2a8279c161efeb243084d78d8077661c9122bb18 (diff) | |
download | upstream-39c5635714aacac4e94f4ac60d191e9b0582d6b5.tar.gz upstream-39c5635714aacac4e94f4ac60d191e9b0582d6b5.tar.bz2 upstream-39c5635714aacac4e94f4ac60d191e9b0582d6b5.zip |
scripts: download.pl: retry download using filename
With this commit, the download script will try downloading source files
using the filename instead of the url-filename in case the previous
download attempt using the url-filename failed.
This is required, as the OpenWrt sources mirrors serve files using the
filename files might be renamed to after downloading. If the original
mirror for a file where url-filename and filename do not match goes
down, the download failed prior to this patch.
Further improvement can be done by performing this only for the
OpenWrt sources mirrors.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit d36999389890fb952fc7cc8c0db8e1bbb671af12)
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/download.pl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/download.pl b/scripts/download.pl index c14a44ba68..5739c20cea 100755 --- a/scripts/download.pl +++ b/scripts/download.pl @@ -93,6 +93,7 @@ $hash_cmd or ($file_hash eq "skip") or die "Cannot find appropriate hash command sub download { my $mirror = shift; + my $download_filename = shift; $mirror =~ s!/$!!; @@ -139,7 +140,7 @@ sub download } }; } else { - my @cmd = download_cmd("$mirror/$url_filename"); + my @cmd = download_cmd("$mirror/$download_filename"); print STDERR "+ ".join(" ",@cmd)."\n"; open(FETCH_FD, '-|', @cmd) or die "Cannot launch curl or wget.\n"; $hash_cmd and do { @@ -266,7 +267,10 @@ while (!-f "$target/$filename") { my $mirror = shift @mirrors; $mirror or die "No more mirrors to try - giving up.\n"; - download($mirror); + download($mirror, $url_filename); + if (!-f "$target/$filename" && $url_filename ne $filename) { + download($mirror, $filename); + } } $SIG{INT} = \&cleanup; |