summaryrefslogtreecommitdiffstats
path: root/mojo/tools/rev_sdk.py
diff options
context:
space:
mode:
authorjam <jam@chromium.org>2015-04-21 17:59:20 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-22 01:00:08 +0000
commite3d9de4c2f97486c407867508b9f96566d140621 (patch)
tree1ba43aba59ac0974a440e091d2ea802f2ad1404f /mojo/tools/rev_sdk.py
parent7ce0394e9e538467c9d11c85cd35689cfa281280 (diff)
downloadchromium_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-xmojo/tools/rev_sdk.py69
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])