#!/usr/bin/env python # # Copyright 2017 Google Inc. # # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Create the asset and upload it.""" import argparse import common import os import shutil import subprocess import sys import utils def main(): if 'linux' not in sys.platform: print >> sys.stderr, 'This script only runs on Linux.' sys.exit(1) parser = argparse.ArgumentParser() parser.add_argument('--gsutil') parser.add_argument('--sdk_path', '-s', required=True) args = parser.parse_args() upload_script = os.path.join(common.FILE_DIR, 'upload.py') try: # Remove large directories that we don't need to use the sdk # (e.g. intermediate build products) rmpath = os.path.join(args.sdk_path, 'clang', 'fastcomp', 'build_incoming_64') # We can ignore errors, for example, if the folders were already deleted. shutil.rmtree(os.path.join(rmpath, 'lib'), ignore_errors=True) shutil.rmtree(os.path.join(rmpath, 'tools') , ignore_errors=True) # Remove the source code, which has lots of small files which slows # extraction. We don't need the source code - we mostly care about the # binaries in $SDK/clang/fastcomp/build_incoming_64/bin. src = os.path.join(args.sdk_path, 'clang', 'fastcomp', 'src') for name in os.listdir(src): p = os.path.join(src, name) # Purposely don't delete src/emscripten-version.txt, which can cause # compilation warnings about "can't verify version". if os.path.isdir(p): shutil.rmtree(p) cmd = ['python', upload_script, '-t', args.sdk_path] if args.gsutil: cmd.extend(['--gsutil', args.gsutil]) subprocess.check_call(cmd) except subprocess.CalledProcessError: # Trap exceptions to avoid printing two stacktraces. sys.exit(1) if __name__ == '__main__': main()