Chromium Code Reviews| Index: deps_utils.py |
| =================================================================== |
| --- deps_utils.py (revision 121912) |
| +++ deps_utils.py (working copy) |
| @@ -3,9 +3,12 @@ |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| +"""Utilities for formatting and writing DEPS files.""" |
| + |
| class VarImpl(object): |
| """Implement the Var function used within the DEPS file.""" |
| + |
| def __init__(self, local_scope): |
| self._local_scope = local_scope |
| @@ -23,12 +26,12 @@ |
| local_scope = {} |
| var = VarImpl(local_scope) |
| global_scope = { |
| - 'Var': var.Lookup, |
| - 'deps': {}, |
| - 'deps_os': {}, |
| - 'include_rules': [], |
| - 'skip_child_includes': [], |
| - 'hooks': [], |
| + 'Var': var.Lookup, |
| + 'deps': {}, |
| + 'deps_os': {}, |
| + 'include_rules': [], |
| + 'skip_child_includes': [], |
| + 'hooks': [], |
| } |
| exec(content, global_scope, local_scope) |
| local_scope.setdefault('deps', {}) |
| @@ -36,10 +39,11 @@ |
| local_scope.setdefault('include_rules', []) |
| local_scope.setdefault('skip_child_includes', []) |
| local_scope.setdefault('hooks', []) |
| + local_scope.setdefault('vars', {}) |
| return (local_scope['deps'], local_scope['deps_os'], |
| local_scope['include_rules'], local_scope['skip_child_includes'], |
| - local_scope['hooks']) |
| + local_scope['hooks'], local_scope['vars']) |
| def PrettyDeps(deps, indent=0): |
| @@ -76,26 +80,28 @@ |
| return pretty |
| -def Varify(deps): |
| +def Varify(deps, deps_overrides): |
| """Replace all instances of our git server with a git_url var.""" |
| deps = deps.replace('\'http://git.chromium.org/external/WebKit_trimmed.git', |
| 'Var(\'webkit_url\')') |
| deps = deps.replace('\'http://git.chromium.org', 'Var(\'git_url\') + \'') |
| - deps = deps.replace('VAR_WEBKIT_REV\'', ' + Var(\'webkit_rev\')') |
| + for value in deps_overrides.values(): |
| + deps = deps.replace("VAR_HASH_TEMP_%s'" % value, "' + Var('%s')" % value) |
|
nsylvain
2012/02/15 17:43:39
Can you add a comment here to say that you are "tr
DaleCurtis
2012/02/16 02:38:37
Done.
|
| + deps = deps.replace("VAR_WEBKIT_REV'", " + Var('webkit_rev')") |
| return deps |
| -def WriteDeps(deps_file_name, vars, deps, deps_os, include_rules, |
| - skip_child_includes, hooks): |
| +def WriteDeps(deps_file_name, deps_vars, deps, deps_os, include_rules, |
| + skip_child_includes, hooks, deps_overrides): |
| """Given all the sections in a DEPS file, write it to disk.""" |
| new_deps = ('# DO NOT EDIT EXCEPT FOR LOCAL TESTING.\n' |
| '# THIS IS A GENERATED FILE.\n', |
| '# ALL MANUAL CHANGES WILL BE OVERWRITTEN.\n', |
| '# SEE http://code.google.com/p/chromium/wiki/UsingNewGit\n', |
| '# FOR HOW TO ROLL DEPS\n' |
| - 'vars = %s\n\n' % PrettyObj(vars), |
| - 'deps = %s\n\n' % Varify(PrettyDeps(deps)), |
| - 'deps_os = %s\n\n' % Varify(PrettyDeps(deps_os)), |
| + 'vars = %s\n\n' % PrettyObj(deps_vars), |
| + 'deps = %s\n\n' % Varify(PrettyDeps(deps), deps_overrides), |
| + 'deps_os = %s\n\n' % Varify(PrettyDeps(deps_os), deps_overrides), |
| 'include_rules = %s\n\n' % PrettyObj(include_rules), |
| 'skip_child_includes = %s\n\n' % PrettyObj(skip_child_includes), |
| 'hooks = %s\n' % PrettyObj(hooks)) |