patman: Tidy up the download function a little
Reverse the order of the return tuple, so that the filename is first. This seems more obvious than putting the temporary directory first. Correct a bug that leaves a space on the final line. Allow the caller to control the name of the temporary directory. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -571,7 +571,7 @@ class Toolchains:
|
|||||||
os.mkdir(dest)
|
os.mkdir(dest)
|
||||||
|
|
||||||
# Download the tar file for this toolchain and unpack it
|
# Download the tar file for this toolchain and unpack it
|
||||||
tmpdir, tarfile = tools.Download(url)
|
tarfile, tmpdir = tools.Download(url, '.buildman')
|
||||||
if not tarfile:
|
if not tarfile:
|
||||||
return 1
|
return 1
|
||||||
print(col.Color(col.GREEN, 'Unpacking to: %s' % dest), end=' ')
|
print(col.Color(col.GREEN, 'Unpacking to: %s' % dest), end=' ')
|
||||||
|
|||||||
@@ -634,20 +634,22 @@ def PrintFullHelp(fname):
|
|||||||
pager = ['more']
|
pager = ['more']
|
||||||
command.Run(*pager, fname)
|
command.Run(*pager, fname)
|
||||||
|
|
||||||
def Download(url):
|
def Download(url, tmpdir_pattern='.patman'):
|
||||||
"""Download a file to a temporary directory
|
"""Download a file to a temporary directory
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
url: URL to download
|
url (str): URL to download
|
||||||
|
tmpdir_pattern (str): pattern to use for the temporary directory
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Tuple:
|
Tuple:
|
||||||
Temporary directory name
|
|
||||||
Full path to the downloaded archive file in that directory,
|
Full path to the downloaded archive file in that directory,
|
||||||
or None if there was an error while downloading
|
or None if there was an error while downloading
|
||||||
|
Temporary directory name
|
||||||
"""
|
"""
|
||||||
print('Downloading: %s' % url)
|
print('- downloading: %s' % url)
|
||||||
leaf = url.split('/')[-1]
|
leaf = url.split('/')[-1]
|
||||||
tmpdir = tempfile.mkdtemp('.buildman')
|
tmpdir = tempfile.mkdtemp(tmpdir_pattern)
|
||||||
response = urllib.request.urlopen(url)
|
response = urllib.request.urlopen(url)
|
||||||
fname = os.path.join(tmpdir, leaf)
|
fname = os.path.join(tmpdir, leaf)
|
||||||
fd = open(fname, 'wb')
|
fd = open(fname, 'wb')
|
||||||
@@ -671,9 +673,11 @@ def Download(url):
|
|||||||
status = status + chr(8) * (len(status) + 1)
|
status = status + chr(8) * (len(status) + 1)
|
||||||
print(status, end=' ')
|
print(status, end=' ')
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
print('\r', end='')
|
||||||
|
sys.stdout.flush()
|
||||||
fd.close()
|
fd.close()
|
||||||
if done != size:
|
if done != size:
|
||||||
print('Error, failed to download')
|
print('Error, failed to download')
|
||||||
os.remove(fname)
|
os.remove(fname)
|
||||||
fname = None
|
fname = None
|
||||||
return tmpdir, fname
|
return fname, tmpdir
|
||||||
|
|||||||
Reference in New Issue
Block a user