Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Side by Side Diff: android_webview/buildbot/generate_local_manifest.py

Issue 1071873003: Delete webview buildbot files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « android_webview/buildbot/deps_whitelist.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Generate local manifest in an Android repository.
7
8 This is used to generate a local manifest in an Android repository. The purpose
9 of the generated manifest is to remove the set of projects that exist under a
10 certain path.
11 """
12
13 from optparse import OptionParser
14 import os
15 import xml.etree.ElementTree as ET
16
17 def createLocalManifest(manifest_path, local_manifest_path, path_to_exclude,
18 pinned_projects=None):
19 manifest_tree = ET.parse(manifest_path)
20 local_manifest_root = ET.Element('manifest')
21
22 def remove_project(project):
23 remove_project = ET.SubElement(local_manifest_root, 'remove-project')
24 remove_project.set('name', project.get('name'))
25
26 def pin_project(project, revision):
27 pin_project = ET.SubElement(local_manifest_root, 'project')
28 pin_project.set('name', project.get('name'))
29 if project.get('path') != None:
30 pin_project.set('path', project.get('path'))
31 pin_project.set('revision', revision)
32
33 for project in manifest_tree.getroot().findall('project'):
34 project_path = project.get('path')
35 project_name = project.get('name')
36 exclude_project = ((project_path != None and
37 project_path.startswith(path_to_exclude)) or
38 (project_path == None and
39 project_name.startswith(path_to_exclude)))
40 if exclude_project:
41 print 'Excluding project name="%s" path="%s"' % (project_name,
42 project_path)
43 remove_project(project)
44 continue
45
46 pinned_projects = pinned_projects or []
47 for pinned in pinned_projects:
48 if pinned['path'] == project_path and pinned['name'] == project_name:
49 remove_project(project)
50 pin_project(project, pinned['revision'])
51 break
52
53 local_manifest_tree = ET.ElementTree(local_manifest_root)
54 local_manifest_dir = os.path.dirname(local_manifest_path)
55 if not os.path.exists(local_manifest_dir):
56 os.makedirs(local_manifest_dir)
57 local_manifest_tree.write(local_manifest_path,
58 xml_declaration=True,
59 encoding='UTF-8',
60 method='xml')
61
62 def main():
63 usage = 'usage: %prog [options] <android_build_top> <path_to_exclude>'
64 parser = OptionParser(usage=usage)
65 parser.add_option('--ndk-revision', dest='ndk_revision',
66 help='pin the ndk project at a particular REVISION',
67 metavar='REVISION', default=None)
68 parser.add_option('--manifest_filename', dest='manifest_filename',
69 help='name of the manifest file', default='default.xml')
70 (options, args) = parser.parse_args()
71
72 if len(args) != 2:
73 parser.error('Wrong number of arguments.')
74
75 android_build_top = args[0]
76 path_to_exclude = args[1]
77
78 manifest_filename = options.manifest_filename
79
80 manifest_path = os.path.join(android_build_top, '.repo/manifests',
81 manifest_filename)
82 local_manifest_path = os.path.join(android_build_top,
83 '.repo/local_manifest.xml')
84
85 pinned_projects = []
86 if options.ndk_revision:
87 pinned_projects = [{
88 'path': 'ndk',
89 'name': 'platform/ndk',
90 'revision' : options.ndk_revision,
91 },]
92
93 print 'Path to exclude: %s' % path_to_exclude
94 print 'Path to manifest file: %s' % manifest_path
95 createLocalManifest(manifest_path, local_manifest_path, path_to_exclude,
96 pinned_projects)
97 print 'Local manifest created in: %s' % local_manifest_path
98
99 if __name__ == '__main__':
100 main()
OLDNEW
« no previous file with comments | « android_webview/buildbot/deps_whitelist.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698