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

Unified Diff: deps_utils.py

Issue 9359045: Add support for non-git-svn repos. Fix syntax errors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/deps2git/
Patch Set: Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « deps2git.py ('k') | svn_to_git_public.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: deps_utils.py
===================================================================
--- deps_utils.py (revision 121912)
+++ deps_utils.py (working copy)
@@ -3,9 +3,18 @@
# 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."""
+import re
+
+# Used by Varify() to automatically convert variable names tagged with this
+# prefix into Var('<variable name>').
+VARIFY_MARKER_TAG_PREFIX = 'VARIFY_MARKER_TAG_'
+
+
class VarImpl(object):
"""Implement the Var function used within the DEPS file."""
+
def __init__(self, local_scope):
self._local_scope = local_scope
@@ -23,12 +32,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 +45,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):
@@ -82,10 +92,15 @@
'Var(\'webkit_url\')')
deps = deps.replace('\'http://git.chromium.org', 'Var(\'git_url\') + \'')
deps = deps.replace('VAR_WEBKIT_REV\'', ' + Var(\'webkit_rev\')')
+
+ # Try to replace all instances of form "marker_prefix_<name>'" with
+ # "' + Var('<name>')". If there are no matches, nothing is done.
+ deps = re.sub(VARIFY_MARKER_TAG_PREFIX + '_(\w+)\'',
+ lambda match: '\' + Var(\'%s\')' % match.group(1), deps)
return deps
-def WriteDeps(deps_file_name, vars, deps, deps_os, include_rules,
+def WriteDeps(deps_file_name, deps_vars, deps, deps_os, include_rules,
skip_child_includes, hooks):
"""Given all the sections in a DEPS file, write it to disk."""
new_deps = ('# DO NOT EDIT EXCEPT FOR LOCAL TESTING.\n'
@@ -93,7 +108,7 @@
'# 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),
+ 'vars = %s\n\n' % PrettyObj(deps_vars),
'deps = %s\n\n' % Varify(PrettyDeps(deps)),
'deps_os = %s\n\n' % Varify(PrettyDeps(deps_os)),
'include_rules = %s\n\n' % PrettyObj(include_rules),
« no previous file with comments | « deps2git.py ('k') | svn_to_git_public.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698