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

Side by Side Diff: fetch.py

Issue 753383002: Have fetch pretty-print the .gclient solution. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « no previous file | 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 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 """ 6 """
7 Tool to perform checkouts in one easy command line! 7 Tool to perform checkouts in one easy command line!
8 8
9 Usage: 9 Usage:
10 fetch <recipe> [--property=value [--property2=value2 ...]] 10 fetch <recipe> [--property=value [--property2=value2 ...]]
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 else: 94 else:
95 svn_path = 'svn' 95 svn_path = 'svn'
96 return self.run((svn_path,) + cmd, **kwargs) 96 return self.run((svn_path,) + cmd, **kwargs)
97 97
98 98
99 class GclientGitCheckout(GclientCheckout, GitCheckout): 99 class GclientGitCheckout(GclientCheckout, GitCheckout):
100 100
101 def __init__(self, options, spec, root): 101 def __init__(self, options, spec, root):
102 super(GclientGitCheckout, self).__init__(options, spec, root) 102 super(GclientGitCheckout, self).__init__(options, spec, root)
103 assert 'solutions' in self.spec 103 assert 'solutions' in self.spec
104 keys = ['solutions', 'target_os', 'target_os_only'] 104
105 gclient_spec = '\n'.join('%s = %s' % (key, self.spec[key]) 105 def _format_spec(self):
106 for key in keys if key in self.spec) 106 def _format_literal(lit):
107 self.spec['gclient_spec'] = gclient_spec 107 if isinstance(lit, basestring):
108 return '"%s"' % lit
109 if isinstance(lit, list):
110 return '[%s]' % ', '.join(_format_literal(i) for i in lit)
111 return '%r' % lit
112 soln_strings = []
113 for soln in self.spec['solutions']:
114 soln_string= '\n'.join(' "%s": %s,' % (key, _format_literal(value))
115 for key, value in soln.iteritems())
116 soln_strings.append(' {\n%s\n },' % soln_string)
117 gclient_spec = 'solutions = [\n%s\n]\n' % '\n'.join(soln_strings)
118 extra_keys = ['target_os', 'target_os_only']
119 gclient_spec += ''.join('%s = %s\n' % (key, _format_literal(self.spec[key]))
120 for key in extra_keys if key in self.spec)
121 return gclient_spec
108 122
109 def exists(self): 123 def exists(self):
110 return os.path.exists(os.path.join(os.getcwd(), self.root)) 124 return os.path.exists(os.path.join(os.getcwd(), self.root))
111 125
112 def init(self): 126 def init(self):
113 # Configure and do the gclient checkout. 127 # Configure and do the gclient checkout.
114 self.run_gclient('config', '--spec', self.spec['gclient_spec']) 128 self.run_gclient('config', '--spec', self._format_spec())
115 sync_cmd = ['sync'] 129 sync_cmd = ['sync']
116 if self.options.nohooks: 130 if self.options.nohooks:
117 sync_cmd.append('--nohooks') 131 sync_cmd.append('--nohooks')
118 if self.options.no_history: 132 if self.options.no_history:
119 sync_cmd.append('--no-history') 133 sync_cmd.append('--no-history')
120 if self.spec.get('with_branch_heads', False): 134 if self.spec.get('with_branch_heads', False):
121 sync_cmd.append('--with_branch_heads') 135 sync_cmd.append('--with_branch_heads')
122 self.run_gclient(*sync_cmd) 136 self.run_gclient(*sync_cmd)
123 137
124 # Configure git. 138 # Configure git.
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 325
312 326
313 def main(): 327 def main():
314 options, recipe, props = handle_args(sys.argv) 328 options, recipe, props = handle_args(sys.argv)
315 spec, root = run_recipe_fetch(recipe, props) 329 spec, root = run_recipe_fetch(recipe, props)
316 return run(options, spec, root) 330 return run(options, spec, root)
317 331
318 332
319 if __name__ == '__main__': 333 if __name__ == '__main__':
320 sys.exit(main()) 334 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698