blob: ce7573e8ea331041cc43ac259501a5d7492c459c [file] [log] [blame]
#!/usr/bin/python
# Copyright 2014 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.
"""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 subprocess
import sys
import tarfile
import zipfile
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 = argv[1]
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))