| 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..290a1bf2e3ef98ef5ee438f1db6c09ec15fa07d0 | 
| --- /dev/null | 
| +++ b/webrtc/tools/testing/download_golang.py | 
| @@ -0,0 +1,48 @@ | 
| +#!/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. This script expects | 
| +to run with Chrome's base dir as the working directory, e.g. where the .gclient | 
| +file is. This is what should happen if this script is invoked as a hook action. | 
| +""" | 
| + | 
| +import os | 
| +import sys | 
| + | 
| +import utils | 
| + | 
| + | 
| +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 <path to webrtc.DEPS>' % argv[0] | 
| +  if not os.path.exists('.gclient'): | 
| +    return 'Invoked from wrong dir; invoke from dir with .gclient' | 
| + | 
| +  webrtc_deps_path = os.path.join(argv[1], 'src', 'webrtc', 'tools', 'testing') | 
| +  golang_path = os.path.join(webrtc_deps_path, '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.DeleteDirNextToGclient('go') | 
| +    utils.UnpackToWorkingDir(archive_path) | 
| + | 
| + | 
| +if __name__ == '__main__': | 
| +  sys.exit(main(sys.argv)) | 
|  |