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

Side by Side Diff: gclient.py

Issue 2786013: Incremental changes towards more efficient refactoring of gclient.py (Closed)
Patch Set: Created 10 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | gclient_scm.py » ('j') | 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/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 """A wrapper script to manage a set of client modules in different SCM. 6 """A wrapper script to manage a set of client modules in different SCM.
7 7
8 This script is intended to be used to help basic management of client 8 This script is intended to be used to help basic management of client
9 program sources residing in one or more Subversion modules and Git 9 program sources residing in one or more Subversion modules and Git
10 repositories, along with other modules it depends on, also in Subversion or Git, 10 repositories, along with other modules it depends on, also in Subversion or Git,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 """Implements the Var syntax.""" 150 """Implements the Var syntax."""
151 if var_name in self._custom_vars: 151 if var_name in self._custom_vars:
152 return self._custom_vars[var_name] 152 return self._custom_vars[var_name]
153 elif var_name in self._local_scope.get("vars", {}): 153 elif var_name in self._local_scope.get("vars", {}):
154 return self._local_scope["vars"][var_name] 154 return self._local_scope["vars"][var_name]
155 raise gclient_utils.Error("Var is not defined: %s" % var_name) 155 raise gclient_utils.Error("Var is not defined: %s" % var_name)
156 156
157 157
158 class GClient(GClientKeywords): 158 class GClient(GClientKeywords):
159 """Object that represent a gclient checkout.""" 159 """Object that represent a gclient checkout."""
160 DEPS_FILE = 'DEPS'
160 161
161 SUPPORTED_COMMANDS = [ 162 SUPPORTED_COMMANDS = [
162 'cleanup', 'diff', 'export', 'pack', 'revert', 'status', 'update', 163 'cleanup', 'diff', 'export', 'pack', 'revert', 'status', 'update',
163 'runhooks' 164 'runhooks'
164 ] 165 ]
165 166
166 DEPS_OS_CHOICES = { 167 DEPS_OS_CHOICES = {
167 "win32": "win", 168 "win32": "win",
168 "win": "win", 169 "win": "win",
169 "cygwin": "win", 170 "cygwin": "win",
170 "darwin": "mac", 171 "darwin": "mac",
171 "mac": "mac", 172 "mac": "mac",
172 "unix": "unix", 173 "unix": "unix",
173 "linux": "unix", 174 "linux": "unix",
174 "linux2": "unix", 175 "linux2": "unix",
175 } 176 }
176 177
177 DEPS_FILE = 'DEPS'
178
179 DEFAULT_CLIENT_FILE_TEXT = ("""\ 178 DEFAULT_CLIENT_FILE_TEXT = ("""\
180 solutions = [ 179 solutions = [
181 { "name" : "%(solution_name)s", 180 { "name" : "%(solution_name)s",
182 "url" : "%(solution_url)s", 181 "url" : "%(solution_url)s",
183 "custom_deps" : { 182 "custom_deps" : {
184 }, 183 },
185 "safesync_url": "%(safesync_url)s" 184 "safesync_url": "%(safesync_url)s"
186 }, 185 },
187 ] 186 ]
188 """) 187 """)
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 if options.verbose: 1032 if options.verbose:
1034 # Print out the .gclient file. This is longer than if we just printed the 1033 # Print out the .gclient file. This is longer than if we just printed the
1035 # client dict, but more legible, and it might contain helpful comments. 1034 # client dict, but more legible, and it might contain helpful comments.
1036 print(client.config_content) 1035 print(client.config_content)
1037 options.force = True 1036 options.force = True
1038 options.nohooks = False 1037 options.nohooks = False
1039 return client.RunOnDeps('runhooks', args) 1038 return client.RunOnDeps('runhooks', args)
1040 1039
1041 1040
1042 def CMDrevinfo(parser, args): 1041 def CMDrevinfo(parser, args):
1043 """Outputs details for every dependencies.""" 1042 """Output revision info mapping for the client and its dependencies.
1044 parser.add_option("--deps", dest="deps_os", metavar="OS_LIST", 1043
1045 help="override deps for the specified (comma-separated) " 1044 This allows the capture of an overall "revision" for the source tree that
1046 "platform(s); 'all' will process all deps_os " 1045 can be used to reproduce the same tree in the future. It is only useful for
1047 "references") 1046 "unpinned dependencies", i.e. DEPS/deps references without a svn revision
1048 parser.add_option("-s", "--snapshot", action="store_true", 1047 number or a git hash. A git branch name isn't "pinned" since the actual
1049 help="create a snapshot file of the current " 1048 commit can change.
1050 "version of all repositories") 1049 """
1050 parser.add_option('--deps', dest='deps_os', metavar='OS_LIST',
1051 help='override deps for the specified (comma-separated) '
1052 'platform(s); \'all\' will process all deps_os '
1053 'references')
1054 parser.add_option('-s', '--snapshot', action='store_true',
1055 help='creates a snapshot .gclient file of the current '
1056 'version of all repositories to reproduce the tree, '
1057 'implies -a')
1051 (options, args) = parser.parse_args(args) 1058 (options, args) = parser.parse_args(args)
1052 client = GClient.LoadCurrentConfig(options) 1059 client = GClient.LoadCurrentConfig(options)
1053 if not client: 1060 if not client:
1054 raise gclient_utils.Error("client not configured; see 'gclient config'") 1061 raise gclient_utils.Error("client not configured; see 'gclient config'")
1055 client.PrintRevInfo() 1062 client.PrintRevInfo()
1056 return 0 1063 return 0
1057 1064
1058 1065
1059 def Command(name): 1066 def Command(name):
1060 return getattr(sys.modules[__name__], 'CMD' + name, None) 1067 return getattr(sys.modules[__name__], 'CMD' + name, None)
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 return CMDhelp(parser, argv) 1139 return CMDhelp(parser, argv)
1133 except gclient_utils.Error, e: 1140 except gclient_utils.Error, e:
1134 print >> sys.stderr, 'Error: %s' % str(e) 1141 print >> sys.stderr, 'Error: %s' % str(e)
1135 return 1 1142 return 1
1136 1143
1137 1144
1138 if '__main__' == __name__: 1145 if '__main__' == __name__:
1139 sys.exit(Main(sys.argv[1:])) 1146 sys.exit(Main(sys.argv[1:]))
1140 1147
1141 # vim: ts=2:sw=2:tw=80:et: 1148 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « no previous file | gclient_scm.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698