#!/usr/bin/env python import argparse import errno import os import subprocess import sys SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor') DOWNLOAD_DIR = os.path.join(VENDOR_DIR, 'download') def main(): args = parse_args() return (update_submodules() or download_libchromiumcontent(args.commit, args.url)) def parse_args(): parser = argparse.ArgumentParser(description='Bootstrap this project') parser.add_argument('-c', '--commit', nargs='?', default='HEAD', help='The commit of libchromiumcontent to download.') parser.add_argument('url', help='The base URL from which to download ' 'libchromiumcontent (i.e., the URL you passed to ' 'libchromiumcontent\'s script/upload script') return parser.parse_args() def update_submodules(): return (subprocess.call(['git', 'submodule', 'sync', '--quiet']) or subprocess.call(['git', 'submodule', 'update', '--init', '--recursive'])) def download_libchromiumcontent(commit, url): mkdir_p(DOWNLOAD_DIR) download = os.path.join(VENDOR_DIR, 'libchromiumcontent', 'script', 'download') return subprocess.call([sys.executable, download, '-f', '-c', commit, url, os.path.join(DOWNLOAD_DIR, 'libchromiumcontent')]) def mkdir_p(path): try: os.makedirs(path) except OSError as e: if e.errno != errno.EEXIST: raise if __name__ == '__main__': sys.exit(main())