From d59857c334777d92afd3da2218e8d669751166b7 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 --- llvm/utils/gn/get.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/llvm/utils/gn/get.py b/llvm/utils/gn/get.py index 4015d59..c39649d 100755 --- a/llvm/utils/gn/get.py +++ b/llvm/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.""" +def download_and_unpack(url, output_dir, gn): + """Download an archive from url and extract gn from it into output_dir.""" print('downloading %s ...' % url, end='') sys.stdout.flush() - output_file.write(urllib2.urlopen(url).read()) + data = 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) + zipfile.ZipFile(io.BytesIO(data)).extract(gn, path=output_dir) def set_executable_bit(path): -- 2.7.4