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)) |