| Index: update_deps.py
|
| diff --git a/update_deps.py b/update_deps.py
|
| index 0b675a1091e8933e2159cd81aaefa88d5beb3b75..b66efee497e43cdc601dbeeeb51496d8f41319a8 100755
|
| --- a/update_deps.py
|
| +++ b/update_deps.py
|
| @@ -17,11 +17,11 @@ from time import strptime
|
| # > mkdir /usr/local/google/home/$USER/dartium_deps_updater
|
| # > cd /usr/local/google/home/$USER/dartium_deps_updater
|
| #
|
| -# (b) Checkout a copy of the DEPS for the updater to process / update:
|
| -# > svn co https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps
|
| +# (b) Make a 'deps' directory to store temporary files:
|
| +# > mkdir deps
|
| #
|
| -# (c) Checkout dartium_tools (with this script) using the current branch instead of 1750:
|
| -# > svn co svn://svn.chromium.org/chrome/branches/dart/1750/src/dartium_tools
|
| +# (c) Checkout dartium_tools (with this script) using the current branch instead of 1847:
|
| +# > svn co svn://svn.chromium.org/chrome/branches/dart/1847/src/dartium_tools
|
| #
|
| # (d) If your home directory is remote, consider redefining it for this shell/script:
|
| # > cp -R $HOME/.subversion /usr/local/google/home/$USER
|
| @@ -29,6 +29,9 @@ from time import strptime
|
| #
|
| # (e) Test by running (Ctrl-C to quit):
|
| # > ./dartium_tools/update_deps.py
|
| +# > ./dartium_tools/update_deps.py --target=multivm
|
| +# > ./dartium_tools/update_deps.py --target=clank
|
| +# > ./dartium_tools/update_deps.py --target=integration
|
| #
|
| # (f) Run periodical update:
|
| # > while true; do ./dartium_tools/update_deps.py --force ; sleep 300 ; done
|
| @@ -37,6 +40,37 @@ from time import strptime
|
| # Repositories to auto-update
|
| ########################################################################
|
|
|
| +BRANCH_CURRENT="dart/1847"
|
| +BRANCH_NEXT="dart/1908"
|
| +BRANCH_MULTIVM="dart/multivm"
|
| +
|
| +TARGETS = {
|
| + 'dartium': (
|
| + 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps',
|
| + 'dartium',
|
| + ['webkit', 'chromium'],
|
| + BRANCH_CURRENT,
|
| + ),
|
| + 'integration': (
|
| + 'https://dart.googlecode.com/svn/branches/dartium_integration/deps/dartium.deps',
|
| + 'dartium',
|
| + ['webkit', 'chromium'],
|
| + BRANCH_NEXT,
|
| + ),
|
| + 'clank': (
|
| + 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/clank.deps',
|
| + 'dartium',
|
| + ['webkit', 'chromium'],
|
| + BRANCH_CURRENT,
|
| + ),
|
| + 'multivm': (
|
| + 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/multivm.deps',
|
| + 'multivm',
|
| + ['blink'],
|
| + BRANCH_MULTIVM,
|
| + ),
|
| +}
|
| +
|
| # Each element in this map represents a repository to update. Entries
|
| # take the form:
|
| # (repo_tag: (svn_url, view_url))
|
| @@ -50,11 +84,14 @@ from time import strptime
|
| # used to generated the commit message.
|
| REPOSITORY_INFO = {
|
| 'webkit': (
|
| - 'http://src.chromium.org/blink/branches/dart/1750',
|
| - 'http://src.chromium.org/viewvc/blink/branches/dart/1750?view=rev&revision=%s'),
|
| + 'http://src.chromium.org/blink/branches/%s',
|
| + 'http://src.chromium.org/viewvc/blink?view=rev&revision=%s'),
|
| + 'blink': (
|
| + 'http://src.chromium.org/blink/branches/%s',
|
| + 'http://src.chromium.org/viewvc/blink?view=rev&revision=%s'),
|
| 'chromium': (
|
| - 'http://src.chromium.org/chrome/branches/dart/1750/src',
|
| - 'http://src.chromium.org/viewvc/chrome/branches/dart/1750/src?view=rev&revision=%s'),
|
| + 'http://src.chromium.org/chrome/branches/%s',
|
| + 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s'),
|
| }
|
|
|
| REPOSITORIES = REPOSITORY_INFO.keys()
|
| @@ -148,31 +185,37 @@ def merge_revs(revs):
|
|
|
| def main():
|
| option_parser = optparse.OptionParser()
|
| + option_parser.add_option('', '--target', help="Update one of [dartium|integration|multivm|clank]", action="store", dest="target", default="dartium")
|
| option_parser.add_option('', '--force', help="Push DEPS update to server without prompting", action="store_true", dest="force")
|
| options, args = option_parser.parse_args()
|
|
|
| - src_dir = "/usr/local/google/home/%s/dartium_deps_updater/dartium.deps" % os.environ["USER"]
|
| + target = options.target
|
| + if not target in TARGETS.keys():
|
| + print "Error: invalid target"
|
| + print "Choose one of " + str(TARGETS)
|
| + (deps_dir, prefix, repos, branch) = TARGETS[target]
|
| + deps_file = deps_dir + '/DEPS'
|
| +
|
| + src_dir = "/usr/local/google/home/%s/dartium_deps_updater/deps/%s" % (os.environ["USER"], target)
|
| os.putenv("GIT_PAGER", "")
|
|
|
| if not os.path.exists(src_dir):
|
| - print "Error: prior to running this script, you need to check out a Dartium source tree at"
|
| - print " %s" % src_dir
|
| - print "Please reserve the above directory for this script and do not use it for other purposes."
|
| - sys.exit(1)
|
| + print run_cmd(['svn', 'co', deps_dir, src_dir])
|
|
|
| os.chdir(src_dir)
|
|
|
| # parse DEPS
|
| - deps = run_cmd(['svn', 'cat', 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps/DEPS'])
|
| + deps = run_cmd(['svn', 'cat', deps_file])
|
| rev_num = {}
|
| - for repo in REPOSITORIES:
|
| - revision = 'dartium_%s_revision":\s*"(.+)"' % repo
|
| + for repo in repos:
|
| + revision = '%s_%s_revision":\s*"(.+)"' % (prefix, repo)
|
| rev_num[repo] = re.search(revision, deps).group(1)
|
|
|
| # update repos
|
| all_revs = []
|
| - for repo, (svn_url, _) in REPOSITORY_INFO.items():
|
| - output = run_cmd(["svn", "log", "-r", "HEAD:%s" % rev_num[repo], svn_url])
|
| + for repo in repos:
|
| + (svn_url, _) = REPOSITORY_INFO[repo]
|
| + output = run_cmd(["svn", "log", "-r", "HEAD:%s" % rev_num[repo], svn_url % branch])
|
| revs = parse_svn_log(output, repo)
|
| if revs and revs[-1]['rev'] == rev_num[repo]:
|
| revs.pop()
|
| @@ -183,8 +226,8 @@ def main():
|
|
|
| print
|
| print "Current DEPS revisions:"
|
| - for repo in REPOSITORIES:
|
| - print ' dartium_%s_revision=%s' % (repo, rev_num[repo])
|
| + for repo in repos:
|
| + print ' %s_%s_revision=%s' % (prefix, repo, rev_num[repo])
|
|
|
| if len(pending_updates) == 0:
|
| print "DEPS is up-to-date."
|
| @@ -200,8 +243,8 @@ def main():
|
| print run_cmd(['svn', 'update'])
|
| s = pending_updates[0]
|
|
|
| - pattern = re.compile('dartium_' + s['repo'] + '_revision":\s*"(.+)"')
|
| - new_deps = pattern.sub('dartium_' + s['repo'] + '_revision": "' + s['rev'] + '"', deps)
|
| + pattern = re.compile(prefix + '_' + s['repo'] + '_revision":\s*"(.+)"')
|
| + new_deps = pattern.sub(prefix + '_' + s['repo'] + '_revision": "' + s['rev'] + '"', deps)
|
| write_file('DEPS', new_deps)
|
|
|
| commit_log = 'DEPS AutoUpdate: %s to %s (%s) %s\n' % (s['repo'], s['rev'], s['isotime'], s['author'])
|
|
|