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

Unified Diff: gclient.py

Issue 20131006: Revert "Improve description layout. Improve coloring and add legend in help." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 7 years, 5 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 | « commit_queue.py ('k') | git_cl.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient.py
diff --git a/gclient.py b/gclient.py
index 50bed88ac5edb299dba8bf22f17544285c7665b7..789d89b9dd78c5603f0597ab1babdb12ce406009 100755
--- a/gclient.py
+++ b/gclient.py
@@ -1379,7 +1379,7 @@ def CMDfetch(parser, args):
Completely git-specific. Simply runs 'git fetch [args ...]' for each module.
"""
(options, args) = parser.parse_args(args)
- return CMDrecurse(OptionParser(), [
+ return CMDrecurse(Parser(), [
'--jobs=%d' % options.jobs, '--scm=git', 'git', 'fetch'] + args)
@@ -1735,57 +1735,52 @@ def GenUsage(parser, command):
parser.epilog = getattr(obj, 'epilog', None)
-class OptionParser(optparse.OptionParser):
+def Parser():
+ """Returns the default parser."""
+ parser = optparse.OptionParser(version='%prog ' + __version__)
+ # some arm boards have issues with parallel sync.
+ if platform.machine().startswith('arm'):
+ jobs = 1
+ else:
+ jobs = max(8, gclient_utils.NumLocalCpus())
+ # cmp: 2013/06/19
+ # Temporary workaround to lower bot-load on SVN server.
+ if os.environ.get('CHROME_HEADLESS') == '1':
+ jobs = 4
gclientfile_default = os.environ.get('GCLIENT_FILE', '.gclient')
-
- def __init__(self, **kwargs):
- optparse.OptionParser.__init__(
- self, version='%prog ' + __version__, **kwargs)
-
- # Some arm boards have issues with parallel sync.
- if platform.machine().startswith('arm'):
- jobs = 1
- else:
- jobs = max(8, gclient_utils.NumLocalCpus())
- # cmp: 2013/06/19
- # Temporary workaround to lower bot-load on SVN server.
- if os.environ.get('CHROME_HEADLESS') == '1':
- jobs = 4
-
- self.add_option(
- '-j', '--jobs', default=jobs, type='int',
- help='Specify how many SCM commands can run in parallel; defaults to '
- 'number of cpu cores (%default)')
- self.add_option(
- '-v', '--verbose', action='count', default=0,
- help='Produces additional output for diagnostics. Can be used up to '
- 'three times for more logging info.')
- self.add_option(
- '--gclientfile', dest='config_filename',
- help='Specify an alternate %s file' % self.gclientfile_default)
- self.add_option(
- '--spec',
- help='create a gclient file containing the provided string. Due to '
- 'Cygwin/Python brokenness, it can\'t contain any newlines.')
- self.add_option(
- '--no-nag-max', default=False, action='store_true',
- help='If a subprocess runs for too long without generating terminal '
- 'output, generate warnings, but do not kill the process.')
-
- def parse_args(self, args=None, values=None):
- """Integrates standard options processing."""
- options, args = optparse.OptionParser.parse_args(self, args, values)
- levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG]
- logging.basicConfig(
- level=levels[min(options.verbose, len(levels) - 1)],
+ parser.add_option('-j', '--jobs', default=jobs, type='int',
+ help='Specify how many SCM commands can run in parallel; '
+ 'defaults to number of cpu cores (%default)')
+ parser.add_option('-v', '--verbose', action='count', default=0,
+ help='Produces additional output for diagnostics. Can be '
+ 'used up to three times for more logging info.')
+ parser.add_option('--gclientfile', dest='config_filename',
+ default=None,
+ help='Specify an alternate %s file' % gclientfile_default)
+ parser.add_option('--spec',
+ default=None,
+ help='create a gclient file containing the provided '
+ 'string. Due to Cygwin/Python brokenness, it '
+ 'probably can\'t contain any newlines.')
+ parser.add_option('--no-nag-max', default=False, action='store_true',
+ help='If a subprocess runs for too long without generating'
+ ' terminal output, generate warnings, but do not kill'
+ ' the process.')
+ # Integrate standard options processing.
+ old_parser = parser.parse_args
+ def Parse(args):
+ (options, args) = old_parser(args)
+ level = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG][
+ min(options.verbose, 3)]
+ logging.basicConfig(level=level,
format='%(module)s(%(lineno)d) %(funcName)s:%(message)s')
if options.config_filename and options.spec:
- self.error('Cannot specifiy both --gclientfile and --spec')
+ parser.error('Cannot specifiy both --gclientfile and --spec')
if not options.config_filename:
- options.config_filename = self.gclientfile_default
+ options.config_filename = gclientfile_default
options.entries_filename = options.config_filename + '_entries'
if options.jobs < 1:
- self.error('--jobs must be 1 or higher')
+ parser.error('--jobs must be 1 or higher')
# These hacks need to die.
if not hasattr(options, 'revisions'):
@@ -1804,10 +1799,10 @@ class OptionParser(optparse.OptionParser):
if options.no_nag_max:
gclient_scm.SCMWrapper.nag_max = None
return (options, args)
-
- def format_epilog(self, _):
- """Disables wordwrapping in epilog (usually examples)."""
- return self.epilog or ''
+ parser.parse_args = Parse
+ # We don't want wordwrapping in epilog (usually examples)
+ parser.format_epilog = lambda _: parser.epilog or ''
+ return parser
def Main(argv):
@@ -1840,7 +1835,7 @@ def Main(argv):
to_str(fn) for fn in dir(sys.modules[__name__]) if fn.startswith('CMD')
)
CMDhelp.usage = '\n\nCommands are:\n' + '\n'.join(cmds)
- parser = OptionParser()
+ parser = Parser()
if argv:
command = Command(argv[0])
if command:
« no previous file with comments | « commit_queue.py ('k') | git_cl.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698