download.pl: check for existing file before the first download attempt
authorFelix Fietkau <nbd@nbd.name>
Fri, 16 Dec 2016 14:15:48 +0000 (15:15 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 16 Dec 2016 14:16:47 +0000 (15:16 +0100)
In the build system, flock will prevent multiple concurrent downloads
for the same file. However, if one download request for the same file is
waiting for another one to finish, it will result in downloading the
same file twice consecutively.

Prevent this issue by exiting immediately if the file has already been
downloaded

Signed-off-by: Felix Fietkau <nbd@nbd.name>
scripts/download.pl

index 90d50a8..ab72b6b 100755 (executable)
@@ -246,12 +246,11 @@ push @mirrors, 'http://sources.lede-project.org';
 push @mirrors, 'http://mirror2.openwrt.org/sources';
 push @mirrors, 'http://downloads.openwrt.org/sources';
 
-while (!$ok) {
+while (!-f "$target/$filename") {
        my $mirror = shift @mirrors;
        $mirror or die "No more mirrors to try - giving up.\n";
 
        download($mirror);
-       -f "$target/$filename" and $ok = 1;
 }
 
 $SIG{INT} = \&cleanup;