blob: 66173296cd16f8d57d135f9db6189c675a36073d [file] [log] [blame]
#!/usr/bin/python
# Copyright 2013 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 appengine 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 glob
import os
import sys
import subprocess
import utils
def _DownloadResources(webrtc_deps_path):
print 'Downloading files in %s...' % webrtc_deps_path
extension = 'bat' if 'win32' in sys.platform else 'py'
cmd = ['download_from_google_storage.%s' % extension,
'--bucket=chromium-webrtc-resources',
'--directory', webrtc_deps_path]
subprocess.check_call(cmd)
def _StripVersionNumberFromMercurialFolder():
unpacked_name = glob.glob('mercurial*')
assert len(unpacked_name) == 1, 'Should have precisely one mercurial!'
os.rename(unpacked_name[0], 'mercurial')
def main(argv):
if len(argv) == 1:
return 'Usage: %s <path to webrtc.DEPS>' % argv[0]
webrtc_deps_path = argv[1]
appengine_zip_path = os.path.join(webrtc_deps_path, 'google-appengine.zip')
old_appengine_sha1 = utils.ComputeSHA1(appengine_zip_path)
mercurial_tar_path = os.path.join(webrtc_deps_path, 'mercurial-src.tar.gz')
old_mercurial_sha1 = utils.ComputeSHA1(mercurial_tar_path)
apprtc_zip_path = os.path.join(webrtc_deps_path, 'prebuilt_apprtc.zip')
old_apprtc_sha1 = utils.ComputeSHA1(apprtc_zip_path)
_DownloadResources(webrtc_deps_path)
if old_appengine_sha1 != utils.ComputeSHA1(appengine_zip_path):
utils.DeleteDirNextToGclient('google_appengine')
utils.UnpackToWorkingDir(appengine_zip_path)
if old_mercurial_sha1 != utils.ComputeSHA1(mercurial_tar_path):
utils.DeleteDirNextToGclient('mercurial')
utils.UnpackToWorkingDir(mercurial_tar_path)
_StripVersionNumberFromMercurialFolder()
if old_apprtc_sha1 != utils.ComputeSHA1(apprtc_zip_path):
utils.DeleteDirNextToGclient('apprtc')
utils.UnpackToWorkingDir(apprtc_zip_path)
if __name__ == '__main__':
sys.exit(main(sys.argv))