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

Side by Side Diff: deps_utils.py

Issue 1333493005: Make sure recursedeps is passed through to .DEPS.git. (Closed) Base URL: http://src.chromium.org/svn/trunk/tools/deps2git
Patch Set: Created 5 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « deps2git.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
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Utilities for formatting and writing DEPS files.""" 6 """Utilities for formatting and writing DEPS files."""
7 7
8 import errno 8 import errno
9 import os 9 import os
10 import shutil 10 import shutil
(...skipping 22 matching lines...) Expand all
33 local_scope = {} 33 local_scope = {}
34 var = VarImpl(local_scope) 34 var = VarImpl(local_scope)
35 global_scope = { 35 global_scope = {
36 'Var': var.Lookup, 36 'Var': var.Lookup,
37 'deps': {}, 37 'deps': {},
38 'deps_os': {}, 38 'deps_os': {},
39 'include_rules': [], 39 'include_rules': [],
40 'skip_child_includes': [], 40 'skip_child_includes': [],
41 'hooks': [], 41 'hooks': [],
42 'vars': {}, 42 'vars': {},
43 'recursedeps': [],
43 } 44 }
44 exec(content, global_scope, local_scope) 45 exec(content, global_scope, local_scope)
45 local_scope.setdefault('deps', {}) 46 local_scope.setdefault('deps', {})
46 local_scope.setdefault('deps_os', {}) 47 local_scope.setdefault('deps_os', {})
47 local_scope.setdefault('include_rules', []) 48 local_scope.setdefault('include_rules', [])
48 local_scope.setdefault('skip_child_includes', []) 49 local_scope.setdefault('skip_child_includes', [])
49 local_scope.setdefault('hooks', []) 50 local_scope.setdefault('hooks', [])
50 local_scope.setdefault('vars', {}) 51 local_scope.setdefault('vars', {})
52 local_scope.setdefault('recursedeps', [])
51 53
52 return (local_scope['deps'], local_scope['deps_os'], 54 return (local_scope['deps'], local_scope['deps_os'],
53 local_scope['include_rules'], local_scope['skip_child_includes'], 55 local_scope['include_rules'], local_scope['skip_child_includes'],
54 local_scope['hooks'], local_scope['vars']) 56 local_scope['hooks'], local_scope['vars'], local_scope['recursedeps'])
55 57
56 58
57 def PrettyDeps(deps, indent=0): 59 def PrettyDeps(deps, indent=0):
58 """Stringify a deps dictionary in a pretty way.""" 60 """Stringify a deps dictionary in a pretty way."""
59 pretty = ' ' * indent 61 pretty = ' ' * indent
60 pretty += '{\n' 62 pretty += '{\n'
61 63
62 indent += 4 64 indent += 4
63 65
64 for item in sorted(deps): 66 for item in sorted(deps):
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 '\'https://chromium.googlesource.com', 'Var(\'git_url\') + \'') 102 '\'https://chromium.googlesource.com', 'Var(\'git_url\') + \'')
101 deps = deps.replace( 103 deps = deps.replace(
102 '\'https://git.chromium.org', 'Var(\'git_url\') + \'') 104 '\'https://git.chromium.org', 'Var(\'git_url\') + \'')
103 deps = deps.replace('VAR_WEBKIT_REV\'', '\' + Var(\'webkit_rev\')') 105 deps = deps.replace('VAR_WEBKIT_REV\'', '\' + Var(\'webkit_rev\')')
104 deps = deps.replace('VAR_ANGLE_REVISION\'', 106 deps = deps.replace('VAR_ANGLE_REVISION\'',
105 '\' + \'@\' + Var(\'angle_revision\')') 107 '\' + \'@\' + Var(\'angle_revision\')')
106 return deps 108 return deps
107 109
108 110
109 def WriteDeps(deps_file_name, deps_vars, deps, deps_os, include_rules, 111 def WriteDeps(deps_file_name, deps_vars, deps, deps_os, include_rules,
110 skip_child_includes, hooks): 112 skip_child_includes, hooks, recursedeps):
111 """Given all the sections in a DEPS file, write it to disk.""" 113 """Given all the sections in a DEPS file, write it to disk."""
112 new_deps = ('# DO NOT EDIT EXCEPT FOR LOCAL TESTING.\n' 114 new_deps = ('# DO NOT EDIT EXCEPT FOR LOCAL TESTING.\n'
113 '# THIS IS A GENERATED FILE.\n', 115 '# THIS IS A GENERATED FILE.\n',
114 '# ALL MANUAL CHANGES WILL BE OVERWRITTEN.\n', 116 '# ALL MANUAL CHANGES WILL BE OVERWRITTEN.\n',
115 '# SEE http://code.google.com/p/chromium/wiki/UsingGit\n', 117 '# SEE http://code.google.com/p/chromium/wiki/UsingGit\n',
116 '# FOR HOW TO ROLL DEPS\n' 118 '# FOR HOW TO ROLL DEPS\n'
117 'vars = %s\n\n' % PrettyObj(deps_vars), 119 'vars = %s\n\n' % PrettyObj(deps_vars),
118 'deps = %s\n\n' % Varify(PrettyDeps(deps)), 120 'deps = %s\n\n' % Varify(PrettyDeps(deps)),
119 'deps_os = %s\n\n' % Varify(PrettyDeps(deps_os)), 121 'deps_os = %s\n\n' % Varify(PrettyDeps(deps_os)),
120 'include_rules = %s\n\n' % PrettyObj(include_rules), 122 'include_rules = %s\n\n' % PrettyObj(include_rules),
121 'skip_child_includes = %s\n\n' % PrettyObj(skip_child_includes), 123 'skip_child_includes = %s\n\n' % PrettyObj(skip_child_includes),
122 'hooks = %s\n' % PrettyObj(hooks)) 124 'hooks = %s\n' % PrettyObj(hooks),
125 'recursedeps = %s\n' % PrettyObj(recursedeps))
123 new_deps = ''.join(new_deps) 126 new_deps = ''.join(new_deps)
124 if deps_file_name: 127 if deps_file_name:
125 deps_file = open(deps_file_name, 'wb') 128 deps_file = open(deps_file_name, 'wb')
126 else: 129 else:
127 deps_file = sys.stdout 130 deps_file = sys.stdout
128 131
129 try: 132 try:
130 deps_file.write(new_deps) 133 deps_file.write(new_deps)
131 finally: 134 finally:
132 if deps_file_name: 135 if deps_file_name:
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 # For POSIX: making the directory writable guarantees removability. 210 # For POSIX: making the directory writable guarantees removability.
208 # Windows will ignore the non-read-only bits in the chmod value. 211 # Windows will ignore the non-read-only bits in the chmod value.
209 os.chmod(root, 0770) 212 os.chmod(root, 0770)
210 for name in files: 213 for name in files:
211 remove_with_retry(os.remove, os.path.join(root, name)) 214 remove_with_retry(os.remove, os.path.join(root, name))
212 for name in dirs: 215 for name in dirs:
213 remove_with_retry(lambda p: shutil.rmtree(p, onerror=RmTreeOnError), 216 remove_with_retry(lambda p: shutil.rmtree(p, onerror=RmTreeOnError),
214 os.path.join(root, name)) 217 os.path.join(root, name))
215 218
216 remove_with_retry(os.rmdir, file_path) 219 remove_with_retry(os.rmdir, file_path)
OLDNEW
« no previous file with comments | « deps2git.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698