[openwrt/openwrt] scripts: download.pl: retry download using filename

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 19 20:36:30 EST 2020


blocktrron pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/d36999389890fb952fc7cc8c0db8e1bbb671af12

commit d36999389890fb952fc7cc8c0db8e1bbb671af12
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Wed Nov 18 16:02:23 2020 +0100

    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 at david-bauer.net>
---
 scripts/download.pl | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/scripts/download.pl b/scripts/download.pl
index cdccae133f..351b06a08b 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(" ", at cmd)."\n";
 		open(FETCH_FD, '-|', @cmd) or die "Cannot launch curl or wget.\n";
 		$hash_cmd and do {
@@ -265,7 +266,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;



More information about the lede-commits mailing list