download_file.py: sync with version from Gerrit 2.11
Change-Id: I7738ddcbc65832149f80ca0eeb1250865c87acdd
diff --git a/tools/download_file.py b/tools/download_file.py
index ab8647d..88ab41a 100755
--- a/tools/download_file.py
+++ b/tools/download_file.py
@@ -28,6 +28,7 @@
CACHE_DIR = path.join(GERRIT_HOME, 'buck-cache')
LOCAL_PROPERTIES = 'local.properties'
+
def hashfile(p):
d = sha1()
with open(p, 'rb') as f:
@@ -38,6 +39,7 @@
d.update(b)
return d.hexdigest()
+
def safe_mkdirs(d):
if path.isdir(d):
return
@@ -47,6 +49,7 @@
if not path.isdir(d):
raise err
+
def download_properties(root_dir):
""" Get the download properties.
@@ -73,14 +76,16 @@
pass
return p
+
def cache_entry(args):
if args.v:
h = args.v
else:
- h = sha1(args.u).hexdigest()
+ h = sha1(args.u.encode('utf-8')).hexdigest()
name = '%s-%s' % (path.basename(args.o), h)
return path.join(CACHE_DIR, name)
+
opts = OptionParser()
opts.add_option('-o', help='local output file')
opts.add_option('-u', help='URL to download')
@@ -137,30 +142,24 @@
exclude += args.x
if args.exclude_java_sources:
try:
- zf = ZipFile(cache_ent, 'r')
- try:
+ with ZipFile(cache_ent, 'r') as zf:
for n in zf.namelist():
if n.endswith('.java'):
exclude.append(n)
- finally:
- zf.close()
except (BadZipfile, LargeZipFile) as err:
- print('error opening %s: %s' % (cache_ent, err), file=stderr)
+ print('error opening %s: %s' % (cache_ent, err), file=stderr)
exit(1)
if args.unsign:
try:
- zf = ZipFile(cache_ent, 'r')
- try:
+ with ZipFile(cache_ent, 'r') as zf:
for n in zf.namelist():
if (n.endswith('.RSA')
or n.endswith('.SF')
or n.endswith('.LIST')):
exclude.append(n)
- finally:
- zf.close()
except (BadZipfile, LargeZipFile) as err:
- print('error opening %s: %s' % (cache_ent, err), file=stderr)
+ print('error opening %s: %s' % (cache_ent, err), file=stderr)
exit(1)
safe_mkdirs(path.dirname(args.o))