rustbuild: Retry downloads by default
Don't rely on curl's --retry, it appears to not work for some errors like SSL errors.
This commit is contained in:
parent
fc6f092c21
commit
30b0ed0bb6
1 changed files with 17 additions and 4 deletions
|
@ -59,6 +59,16 @@ def delete_if_present(path, verbose):
|
||||||
|
|
||||||
|
|
||||||
def download(path, url, probably_big, verbose):
|
def download(path, url, probably_big, verbose):
|
||||||
|
for x in range(0, 4):
|
||||||
|
try:
|
||||||
|
_download(path, url, probably_big, verbose, True)
|
||||||
|
return
|
||||||
|
except RuntimeError:
|
||||||
|
print("\nspurious failure, trying again")
|
||||||
|
_download(path, url, probably_big, verbose, False)
|
||||||
|
|
||||||
|
|
||||||
|
def _download(path, url, probably_big, verbose, exception):
|
||||||
if probably_big or verbose:
|
if probably_big or verbose:
|
||||||
print("downloading {}".format(url))
|
print("downloading {}".format(url))
|
||||||
# see http://serverfault.com/questions/301128/how-to-download
|
# see http://serverfault.com/questions/301128/how-to-download
|
||||||
|
@ -66,13 +76,16 @@ def download(path, url, probably_big, verbose):
|
||||||
run(["PowerShell.exe", "/nologo", "-Command",
|
run(["PowerShell.exe", "/nologo", "-Command",
|
||||||
"(New-Object System.Net.WebClient)"
|
"(New-Object System.Net.WebClient)"
|
||||||
".DownloadFile('{}', '{}')".format(url, path)],
|
".DownloadFile('{}', '{}')".format(url, path)],
|
||||||
verbose=verbose)
|
verbose=verbose,
|
||||||
|
exception=exception)
|
||||||
else:
|
else:
|
||||||
if probably_big or verbose:
|
if probably_big or verbose:
|
||||||
option = "-#"
|
option = "-#"
|
||||||
else:
|
else:
|
||||||
option = "-s"
|
option = "-s"
|
||||||
run(["curl", option, "--retry", "3", "-Sf", "-o", path, url], verbose=verbose)
|
run(["curl", option, "--retry", "3", "-Sf", "-o", path, url],
|
||||||
|
verbose=verbose,
|
||||||
|
exception=exception)
|
||||||
|
|
||||||
|
|
||||||
def verify(path, sha_path, verbose):
|
def verify(path, sha_path, verbose):
|
||||||
|
@ -112,7 +125,7 @@ def unpack(tarball, dst, verbose=False, match=None):
|
||||||
shutil.move(tp, fp)
|
shutil.move(tp, fp)
|
||||||
shutil.rmtree(os.path.join(dst, fname))
|
shutil.rmtree(os.path.join(dst, fname))
|
||||||
|
|
||||||
def run(args, verbose=False):
|
def run(args, verbose=False, exception=False):
|
||||||
if verbose:
|
if verbose:
|
||||||
print("running: " + ' '.join(args))
|
print("running: " + ' '.join(args))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
@ -122,7 +135,7 @@ def run(args, verbose=False):
|
||||||
code = ret.wait()
|
code = ret.wait()
|
||||||
if code != 0:
|
if code != 0:
|
||||||
err = "failed to run: " + ' '.join(args)
|
err = "failed to run: " + ' '.join(args)
|
||||||
if verbose:
|
if verbose or exception:
|
||||||
raise RuntimeError(err)
|
raise RuntimeError(err)
|
||||||
sys.exit(err)
|
sys.exit(err)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue