| Index: webrtc/tools/testing/download_golang.py | 
| diff --git a/webrtc/tools/testing/download_golang.py b/webrtc/tools/testing/download_golang.py | 
| new file mode 100755 | 
| index 0000000000000000000000000000000000000000..a6665bb719a16d152572eb09361fd9ef1be1e385 | 
| --- /dev/null | 
| +++ b/webrtc/tools/testing/download_golang.py | 
| @@ -0,0 +1,57 @@ | 
| +#!/usr/bin/env python | 
| +# Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 
| +# | 
| +# Use of this source code is governed by a BSD-style license | 
| +# that can be found in the LICENSE file in the root of the source | 
| +# tree. An additional intellectual property rights grant can be found | 
| +# in the file PATENTS.  All contributing project authors may | 
| +# be found in the AUTHORS file in the root of the source tree. | 
| + | 
| +"""Downloads the golang SDK from WebRTC storage and unpacks it. | 
| + | 
| +Requires that depot_tools is installed and in the PATH. | 
| + | 
| +The precondition is that a directory 'golang' lives in the same directory | 
| +as the script. | 
| +This 'golang' directory has the following structure: | 
| + | 
| +/golang | 
| + | | 
| + |-----/linux/go.tar.gz.sha1 | 
| + |-----/win/go.zip.sha1 | 
| + |-----/mac/go.tar.gz.sha1 | 
| +""" | 
| + | 
| +import os | 
| +import sys | 
| + | 
| +import utils | 
| + | 
| + | 
| +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) | 
| + | 
| + | 
| +def _GetGoArchivePathForPlatform(): | 
| +  archive_extension = 'zip' if utils.GetPlatform() == 'win' else 'tar.gz' | 
| +  return os.path.join(utils.GetPlatform(), 'go.%s' % archive_extension) | 
| + | 
| + | 
| +def main(argv): | 
| +  if len(argv) == 1: | 
| +    return 'Usage: %s <output_dir>' % argv[0] | 
| + | 
| +  output_dir = os.path.join(argv[1]) | 
| +  golang_path = os.path.join(SCRIPT_DIR, 'golang') | 
| +  archive_path = os.path.join(golang_path, _GetGoArchivePathForPlatform()) | 
| +  old_archive_sha1 = utils.ComputeSHA1(archive_path) | 
| + | 
| +  utils.DownloadFilesFromGoogleStorage(golang_path) | 
| + | 
| +  if (old_archive_sha1 != utils.ComputeSHA1(archive_path) | 
| +      or not os.path.exists('go')): | 
| +    utils.RemoveDirectory(os.path.join(output_dir, 'go')) | 
| +    utils.UnpackArchiveTo(archive_path, output_dir) | 
| + | 
| + | 
| +if __name__ == '__main__': | 
| +  sys.exit(main(sys.argv)) | 
|  |