diff options
Diffstat (limited to 'third_party/libwebrtc/webrtc/build/fuchsia/update_sdk.py')
-rw-r--r-- | third_party/libwebrtc/webrtc/build/fuchsia/update_sdk.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/third_party/libwebrtc/webrtc/build/fuchsia/update_sdk.py b/third_party/libwebrtc/webrtc/build/fuchsia/update_sdk.py new file mode 100644 index 0000000000..2302629c01 --- /dev/null +++ b/third_party/libwebrtc/webrtc/build/fuchsia/update_sdk.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# Copyright 2017 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. + +"""Updates the Fuchsia SDK to the given revision. Should be used in a 'hooks_os' +entry so that it only runs when .gclient's target_os includes 'fuchsia'.""" + +import os +import shutil +import subprocess +import sys +import tarfile +import tempfile + +REPOSITORY_ROOT = os.path.abspath(os.path.join( + os.path.dirname(__file__), '..', '..')) +sys.path.append(os.path.join(REPOSITORY_ROOT, 'build')) + +import find_depot_tools + + +def EnsureDirExists(path): + if not os.path.exists(path): + print 'Creating directory %s' % path + os.makedirs(path) + + +def main(): + if len(sys.argv) != 2: + print >>sys.stderr, 'usage: %s <sdk_hash>' % sys.argv[0] + return 1 + + sdk_hash = sys.argv[1] + output_dir = os.path.join(REPOSITORY_ROOT, 'third_party', 'fuchsia-sdk') + + hash_filename = os.path.join(output_dir, '.hash') + if os.path.exists(hash_filename): + with open(hash_filename, 'r') as f: + if f.read().strip() == sdk_hash: + # Nothing to do. + return 0 + + print 'Downloading SDK %s...' % sdk_hash + + if os.path.isdir(output_dir): + shutil.rmtree(output_dir) + + bucket = 'gs://fuchsia-build/fuchsia/sdk/linux64/' + with tempfile.NamedTemporaryFile() as f: + cmd = [os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), + 'cp', bucket + sdk_hash, f.name] + subprocess.check_call(cmd) + f.seek(0) + EnsureDirExists(output_dir) + tarfile.open(mode='r:gz', fileobj=f).extractall(path=output_dir) + + with open(hash_filename, 'w') as f: + f.write(sdk_hash) + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) |