mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-06 20:11:38 +08:00
+ drive-by imports cleanup DISABLE_THIRD_PARTY_CHECK=Migrating multiple scripts to py3 Bug: 1292013 Change-Id: I6d004c6fd54253cc3694cf02cfe94731c7d2146d Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3484199 Reviewed-by: Alexander Schulze <alexschulze@chromium.org> Reviewed-by: Tim Van der Lippe <tvanderlippe@chromium.org> Commit-Queue: Liviu Rau <liviurau@chromium.org>
80 lines
2.1 KiB
Python
80 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# Copyright 2020 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
"""
|
|
Used to download a pre-built version of emscripten for running e2e tests
|
|
testing DevTools with emscripten generated Wasm binaries.
|
|
"""
|
|
|
|
import argparse
|
|
import os
|
|
import platform
|
|
import sys
|
|
import tarfile
|
|
import urllib.request
|
|
import zipfile
|
|
|
|
BS = 8192
|
|
STAMP_FILE = 'build-revision'
|
|
DOWNLOAD_URL = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/%s/%s/wasm-binaries.%s"
|
|
|
|
|
|
def check_stamp_file(options):
|
|
file_name = os.path.join(options.dest, STAMP_FILE)
|
|
if not os.path.isfile(file_name):
|
|
return False
|
|
with open(file_name) as f:
|
|
return options.tag == f.read().strip()
|
|
|
|
|
|
def write_stamp_file(options):
|
|
with open(os.path.join(options.dest, STAMP_FILE), 'w') as f:
|
|
return f.write(options.tag)
|
|
|
|
|
|
def unzip(os_name, file, dest):
|
|
is_zip = os_name == 'win'
|
|
z = zipfile.ZipFile(file) if is_zip else tarfile.open(file, 'r:bz2')
|
|
z.extractall(path=dest)
|
|
|
|
|
|
def script_main(args):
|
|
parser = argparse.ArgumentParser(description='Download Emscripten')
|
|
parser.add_argument('tag', help='emscripten tag')
|
|
parser.add_argument('dest', help='destination directory')
|
|
options = parser.parse_args(args)
|
|
|
|
if not os.path.isdir(options.dest):
|
|
os.makedirs(options.dest)
|
|
|
|
if check_stamp_file(options):
|
|
return 0
|
|
|
|
os_name = {
|
|
'Linux': 'linux',
|
|
'Windows': 'win',
|
|
'Darwin': 'mac'
|
|
}[platform.system()]
|
|
|
|
url = DOWNLOAD_URL % (os_name, options.tag,
|
|
'zip' if os_name == 'win' else 'tbz2')
|
|
|
|
try:
|
|
filename, _ = urllib.request.urlretrieve(url)
|
|
|
|
unzip(os_name, filename, options.dest)
|
|
|
|
write_stamp_file(options)
|
|
except Exception as e:
|
|
sys.stderr.write('Error Downloading URL "{url}": {e}\n'.format(url=url,
|
|
e=e))
|
|
return 1
|
|
finally:
|
|
urllib.request.urlcleanup()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(script_main(sys.argv[1:]))
|