diff options
author | jam <jam@chromium.org> | 2015-04-21 17:59:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-22 01:00:08 +0000 |
commit | e3d9de4c2f97486c407867508b9f96566d140621 (patch) | |
tree | 1ba43aba59ac0974a440e091d2ea802f2ad1404f /mojo/tools/rev_sdk.py | |
parent | 7ce0394e9e538467c9d11c85cd35689cfa281280 (diff) | |
download | chromium_src-e3d9de4c2f97486c407867508b9f96566d140621.zip chromium_src-e3d9de4c2f97486c407867508b9f96566d140621.tar.gz chromium_src-e3d9de4c2f97486c407867508b9f96566d140621.tar.bz2 |
Move over rev_sdk.py from Mojo repo to chromium.
BUG=479353
Review URL: https://codereview.chromium.org/1065983008
Cr-Commit-Position: refs/heads/master@{#326202}
Diffstat (limited to 'mojo/tools/rev_sdk.py')
-rwxr-xr-x | mojo/tools/rev_sdk.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/mojo/tools/rev_sdk.py b/mojo/tools/rev_sdk.py new file mode 100755 index 0000000..c750868 --- /dev/null +++ b/mojo/tools/rev_sdk.py @@ -0,0 +1,69 @@ +#!/usr/bin/env 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. + +"""Tool to roll Mojo into Chromium. See: +https://github.com/domokit/mojo/wiki/Rolling-code-between-chromium-and-mojo#mojo---chromium-updates-sdk--edk +""" + +import os +import sys +from utils import commit +from utils import mojo_root_dir +from utils import system + +sdk_prefix_in_chromium = "third_party/mojo/src" +sdk_dirs_to_clone = [ + "mojo/edk", + "mojo/public", + "nacl_bindings", +] + + +services_prefix_in_mojo = "mojo/services" +services_prefix_in_chromium = "third_party/mojo_services/src" + +# A dictionary mapping dirs to clone to their destination locations in Chromium. +dirs_to_clone = {} + +for sdk_dir in sdk_dirs_to_clone: + sdk_dir_in_chromium = os.path.join(sdk_prefix_in_chromium, sdk_dir) + dirs_to_clone[sdk_dir] = sdk_dir_in_chromium + +def rev(source_dir, chromium_dir): + src_commit = system(["git", "show-ref", "HEAD", "-s"], cwd=source_dir).strip() + + for input_dir, dest_dir in dirs_to_clone.iteritems(): + if os.path.exists(os.path.join(chromium_dir, dest_dir)): + print "removing directory %s" % dest_dir + system(["git", "rm", "-r", dest_dir], cwd=chromium_dir) + print "cloning directory %s into %s" % (input_dir, dest_dir) + files = system(["git", "ls-files", input_dir], cwd=source_dir) + for f in files.splitlines(): + # Don't copy presubmit files over since the code is read-only on the + # chromium side. + if os.path.basename(f) == "PRESUBMIT.py": + continue + + # Clone |f| into Chromium under |dest_dir| at its location relative to + # |input_dir|. + f_relpath = os.path.relpath(f, input_dir) + dest_path = os.path.join(chromium_dir, dest_dir, f_relpath) + system(["mkdir", "-p", os.path.dirname(dest_path)]) + system(["cp", os.path.join(source_dir, f), dest_path]) + os.chdir(chromium_dir) + system(["git", "add", dest_dir], cwd=chromium_dir) + + mojo_public_dest_dir = os.path.join(sdk_prefix_in_chromium, "mojo/public") + version_filename = os.path.join(mojo_public_dest_dir, "VERSION") + with open(version_filename, "w") as version_file: + version_file.write(src_commit) + system(["git", "add", version_filename], cwd=chromium_dir) + commit("Update mojo sdk to rev " + src_commit, cwd=chromium_dir) + +if len(sys.argv) != 2: + print "usage: rev_sdk.py <chromium source dir>" + sys.exit(1) + +rev(mojo_root_dir, sys.argv[1]) |