tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pull-chromium.py (1520B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 """
      6 Pull a specified revision of chromium from SVN.
      7 
      8 Usage: python pull-chromium.py <topsrcdir> <chromiumtree> <revision>
      9 
     10 You will have to set up a Chromium tree before running this step. See
     11 http://dev.chromium.org/developers/how-tos/get-the-code for details about
     12 doing this efficiently.
     13 """
     14 
     15 import os
     16 import sys
     17 from shutil import rmtree
     18 from subprocess import check_call
     19 
     20 topsrcdir, chromiumtree, rev = sys.argv[1:]
     21 
     22 if not os.path.exists(os.path.join(topsrcdir, "client.py")):
     23    print >> sys.stderr, "Incorrect topsrcdir"
     24    sys.exit(1)
     25 
     26 if not os.path.exists(os.path.join(chromiumtree, "src/DEPS")):
     27    print >> sys.stderr, "Incorrect chromium directory, missing DEPS"
     28    sys.exit(1)
     29 
     30 check_call(["gclient", "sync", "--force", "--revision=src@%s" % rev], cwd=chromiumtree)
     31 
     32 chromiumsrc = os.path.join(topsrcdir, "ipc/chromium/src")
     33 os.path.exists(chromiumsrc) and rmtree(chromiumsrc)
     34 
     35 
     36 def doexport(svnpath):
     37    localpath = os.path.join(chromiumsrc, svnpath)
     38    os.makedirs(os.path.dirname(localpath))
     39    check_call([
     40        "svn",
     41        "export",
     42        "-r",
     43        "BASE",
     44        os.path.join(chromiumtree, "src", svnpath),
     45        localpath,
     46    ])
     47 
     48 
     49 doexport("base")
     50 doexport("chrome/common")
     51 doexport("build/build_config.h")
     52 doexport("testing/gtest/include")
     53 doexport("third_party/libevent")