# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. """ Pull a specified revision of chromium from SVN. Usage: python pull-chromium.py You will have to set up a Chromium tree before running this step. See http://dev.chromium.org/developers/how-tos/get-the-code for details about doing this efficiently. """ import os import sys from shutil import rmtree from subprocess import check_call topsrcdir, chromiumtree, rev = sys.argv[1:] if not os.path.exists(os.path.join(topsrcdir, "client.py")): print >>sys.stderr, "Incorrect topsrcdir" sys.exit(1) if not os.path.exists(os.path.join(chromiumtree, "src/DEPS")): print >>sys.stderr, "Incorrect chromium directory, missing DEPS" sys.exit(1) check_call(["gclient", "sync", "--force", "--revision=src@%s" % rev], cwd=chromiumtree) chromiumsrc = os.path.join(topsrcdir, "ipc/chromium/src") os.path.exists(chromiumsrc) and rmtree(chromiumsrc) def doexport(svnpath): localpath = os.path.join(chromiumsrc, svnpath) os.makedirs(os.path.dirname(localpath)) check_call( [ "svn", "export", "-r", "BASE", os.path.join(chromiumtree, "src", svnpath), localpath, ] ) doexport("base") doexport("chrome/common") doexport("build/build_config.h") doexport("testing/gtest/include") doexport("third_party/libevent")