[PATCH v2 07/38] patman: Tidy up the download function a little

Simon Glass sjg at chromium.org
Mon Jan 10 04:13:42 CET 2022


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 at chromium.org>
---

(no changes since v1)

 tools/buildman/toolchain.py |  2 +-
 tools/patman/tools.py       | 16 ++++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index bcae5ef7415..adc75a7a0b7 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -571,7 +571,7 @@ class Toolchains:
             os.mkdir(dest)
 
         # Download the tar file for this toolchain and unpack it
-        tmpdir, tarfile = tools.Download(url)
+        tarfile, tmpdir = tools.Download(url, '.buildman')
         if not tarfile:
             return 1
         print(col.Color(col.GREEN, 'Unpacking to: %s' % dest), end=' ')
diff --git a/tools/patman/tools.py b/tools/patman/tools.py
index 2f817f61670..24e2bf567b8 100644
--- a/tools/patman/tools.py
+++ b/tools/patman/tools.py
@@ -634,20 +634,22 @@ def PrintFullHelp(fname):
         pager = ['more']
     command.Run(*pager, fname)
 
-def Download(url):
+def Download(url, tmpdir_pattern='.patman'):
     """Download a file to a temporary directory
 
     Args:
-        url: URL to download
+        url (str): URL to download
+        tmpdir_pattern (str): pattern to use for the temporary directory
+
     Returns:
         Tuple:
-            Temporary directory name
             Full path to the downloaded archive file in that directory,
                 or None if there was an error while downloading
+            Temporary directory name
     """
-    print('Downloading: %s' % url)
+    print('- downloading: %s' % url)
     leaf = url.split('/')[-1]
-    tmpdir = tempfile.mkdtemp('.buildman')
+    tmpdir = tempfile.mkdtemp(tmpdir_pattern)
     response = urllib.request.urlopen(url)
     fname = os.path.join(tmpdir, leaf)
     fd = open(fname, 'wb')
@@ -671,9 +673,11 @@ def Download(url):
         status = status + chr(8) * (len(status) + 1)
         print(status, end=' ')
         sys.stdout.flush()
+    print('\r', end='')
+    sys.stdout.flush()
     fd.close()
     if done != size:
         print('Error, failed to download')
         os.remove(fname)
         fname = None
-    return tmpdir, fname
+    return fname, tmpdir
-- 
2.34.1.575.g55b058a8bb-goog



More information about the U-Boot mailing list