From c7ba0332596d233510030171ba09bbca230572f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Hajdan=2C=20Jr?= Date: Mon, 29 May 2017 16:38:45 +0200 Subject: [PATCH] gclient: allow dict syntax in deps, in preparation for conditions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: 570091 Change-Id: Ib3296a201bdcbd4ec350ee0e98112a89e388fd61 Reviewed-on: https://chromium-review.googlesource.com/517049 Reviewed-by: Andrii Shyshkalov Commit-Queue: Paweł Hajdan Jr. --- gclient.py | 8 +++++++- gclient_eval.py | 9 ++++++++- testing_support/fake_repos.py | 4 +++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gclient.py b/gclient.py index 7dd3a6c80..f861ed930 100755 --- a/gclient.py +++ b/gclient.py @@ -644,13 +644,19 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): # Convert the deps into real Dependency. deps_to_add = [] - for name, url in deps.iteritems(): + for name, dep_value in deps.iteritems(): should_process = self.recursion_limit and self.should_process deps_file = self.deps_file if self.recursedeps is not None: ent = self.recursedeps.get(name) if ent is not None: deps_file = ent['deps_file'] + if isinstance(dep_value, basestring): + url = dep_value + else: + # This should be guaranteed by schema checking in gclient_eval. + assert isinstance(dep_value, dict) + url = dep_value['url'] deps_to_add.append(Dependency( self, name, url, None, None, self.custom_vars, None, deps_file, should_process, use_relative_paths)) diff --git a/gclient_eval.py b/gclient_eval.py index caf63d4f6..a995db9e1 100644 --- a/gclient_eval.py +++ b/gclient_eval.py @@ -35,7 +35,14 @@ _GCLIENT_SCHEMA = schema.Schema({ # # Var(): allows variable substitution (either from 'vars' dict below, # or command-line override) - schema.Optional('deps'): {schema.Optional(basestring): basestring}, + schema.Optional('deps'): { + schema.Optional(basestring): schema.Or( + basestring, + { + 'url': basestring, + }, + ), + }, # Similar to 'deps' (see above) - also keyed by OS (e.g. 'linux'). # Also see 'target_os'. diff --git a/testing_support/fake_repos.py b/testing_support/fake_repos.py index 6bd3dc569..899114c00 100755 --- a/testing_support/fake_repos.py +++ b/testing_support/fake_repos.py @@ -447,7 +447,9 @@ pre_deps_hooks = [ self._commit_git('repo_6', { 'DEPS': """ deps = { - 'src/repo2': '%(git_base)srepo_2@%(hash)s', + 'src/repo2': { + 'url': '%(git_base)srepo_2@%(hash)s', + }, } hooks = [ {