Source code

Revision control

Other Tools

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
12
doing this efficiently.
13
"""
14
15
import sys
16
import os
17
from subprocess import check_call
18
from shutil import rmtree
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(['svn', 'export', '-r', 'BASE', os.path.join(chromiumtree, 'src', svnpath),
40
localpath])
41
42
43
doexport('base')
44
doexport('chrome/common')
45
doexport('build/build_config.h')
46
doexport('testing/gtest/include')
47
doexport('third_party/libevent')