From 0a60122796127a18a075f1271bbfd43df856ac74 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Mon, 25 Mar 2019 11:32:27 +0000 Subject: [PATCH] gn build: Let get.py keep zip file in memory instead of using a temp file The zip is small, and it's a bit less code this way. No intended behavior change. Differential Revision: https://reviews.llvm.org/D59677 llvm-svn: 356884 --- utils/gn/get.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/utils/gn/get.py b/utils/gn/get.py index 4015d5986c9..c39649df78a 100755 --- a/utils/gn/get.py +++ b/utils/gn/get.py @@ -3,27 +3,20 @@ from __future__ import print_function +import io import os import urllib2 import sys -import tempfile import zipfile -def download_url(url, output_file): - """Download url into output_file.""" - print('downloading %s ...' % url, end='') - sys.stdout.flush() - output_file.write(urllib2.urlopen(url).read()) - print(' done') - - def download_and_unpack(url, output_dir, gn): """Download an archive from url and extract gn from it into output_dir.""" - with tempfile.TemporaryFile() as f: - download_url(url, f) - f.seek(0) - zipfile.ZipFile(f).extract(gn, path=output_dir) + print('downloading %s ...' % url, end='') + sys.stdout.flush() + data = urllib2.urlopen(url).read() + print(' done') + zipfile.ZipFile(io.BytesIO(data)).extract(gn, path=output_dir) def set_executable_bit(path):