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

Side by Side Diff: gclient.py

Issue 8365001: Include initial use of colorama (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | pylintrc » ('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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 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 """Meta checkout manager supporting both Subversion and GIT. 6 """Meta checkout manager supporting both Subversion and GIT.
7 7
8 Files 8 Files
9 .gclient : Current client configuration, written by 'config' command. 9 .gclient : Current client configuration, written by 'config' command.
10 Format is a Python script defining 'solutions', a list whose 10 Format is a Python script defining 'solutions', a list whose
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 import urlparse 62 import urlparse
63 import urllib 63 import urllib
64 64
65 import breakpad # pylint: disable=W0611 65 import breakpad # pylint: disable=W0611
66 66
67 import fix_encoding 67 import fix_encoding
68 import gclient_scm 68 import gclient_scm
69 import gclient_utils 69 import gclient_utils
70 from third_party.repo.progress import Progress 70 from third_party.repo.progress import Progress
71 import subprocess2 71 import subprocess2
72 from third_party import colorama
73 # Import shortcut.
74 from third_party.colorama import Fore
72 75
73 76
74 def attr(attribute, data): 77 def attr(attribute, data):
75 """Sets an attribute on a function.""" 78 """Sets an attribute on a function."""
76 def hook(fn): 79 def hook(fn):
77 setattr(fn, attribute, data) 80 setattr(fn, attribute, data)
78 return fn 81 return fn
79 return hook 82 return hook
80 83
81 84
(...skipping 1394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1476 parser.format_epilog = lambda _: parser.epilog or '' 1479 parser.format_epilog = lambda _: parser.epilog or ''
1477 return parser 1480 return parser
1478 1481
1479 1482
1480 def Main(argv): 1483 def Main(argv):
1481 """Doesn't parse the arguments here, just find the right subcommand to 1484 """Doesn't parse the arguments here, just find the right subcommand to
1482 execute.""" 1485 execute."""
1483 if sys.hexversion < 0x02050000: 1486 if sys.hexversion < 0x02050000:
1484 print >> sys.stderr, ( 1487 print >> sys.stderr, (
1485 '\nYour python version is unsupported, please upgrade.\n') 1488 '\nYour python version is unsupported, please upgrade.\n')
1489 colorama.init()
1486 try: 1490 try:
1487 # Make stdout auto-flush so buildbot doesn't kill us during lengthy 1491 # Make stdout auto-flush so buildbot doesn't kill us during lengthy
1488 # operations. Python as a strong tendency to buffer sys.stdout. 1492 # operations. Python as a strong tendency to buffer sys.stdout.
1489 sys.stdout = gclient_utils.MakeFileAutoFlush(sys.stdout) 1493 sys.stdout = gclient_utils.MakeFileAutoFlush(sys.stdout)
1490 # Make stdout annotated with the thread ids. 1494 # Make stdout annotated with the thread ids.
1491 sys.stdout = gclient_utils.MakeFileAnnotated(sys.stdout) 1495 sys.stdout = gclient_utils.MakeFileAnnotated(sys.stdout)
1492 # Do it late so all commands are listed. 1496 # Do it late so all commands are listed.
1493 # Unused variable 'usage' 1497 # Unused variable 'usage'
1494 # pylint: disable=W0612 1498 # pylint: disable=W0612
1495 CMDhelp.usage = ('\n\nCommands are:\n' + '\n'.join([ 1499 def to_str(fn):
1496 ' %-10s %s' % (fn[3:], Command(fn[3:]).__doc__.split('\n')[0].strip()) 1500 return (
1497 for fn in dir(sys.modules[__name__]) if fn.startswith('CMD')])) 1501 ' %s%-10s%s' % (Fore.GREEN, fn[3:], Fore.RESET) +
1502 ' %s' % Command(fn[3:]).__doc__.split('\n')[0].strip())
1503 cmds = (
1504 to_str(fn) for fn in dir(sys.modules[__name__]) if fn.startswith('CMD')
1505 )
1506 CMDhelp.usage = '\n\nCommands are:\n' + '\n'.join(cmds)
1498 parser = Parser() 1507 parser = Parser()
1499 if argv: 1508 if argv:
1500 command = Command(argv[0]) 1509 command = Command(argv[0])
1501 if command: 1510 if command:
1502 # 'fix' the usage and the description now that we know the subcommand. 1511 # 'fix' the usage and the description now that we know the subcommand.
1503 GenUsage(parser, argv[0]) 1512 GenUsage(parser, argv[0])
1504 return command(parser, argv[1:]) 1513 return command(parser, argv[1:])
1505 # Not a known command. Default to help. 1514 # Not a known command. Default to help.
1506 GenUsage(parser, 'help') 1515 GenUsage(parser, 'help')
1507 return CMDhelp(parser, argv) 1516 return CMDhelp(parser, argv)
1508 except (gclient_utils.Error, subprocess2.CalledProcessError), e: 1517 except (gclient_utils.Error, subprocess2.CalledProcessError), e:
1509 print >> sys.stderr, 'Error: %s' % str(e) 1518 print >> sys.stderr, 'Error: %s' % str(e)
1510 return 1 1519 return 1
1511 1520
1512 1521
1513 if '__main__' == __name__: 1522 if '__main__' == __name__:
1514 fix_encoding.fix_encoding() 1523 fix_encoding.fix_encoding()
1515 sys.exit(Main(sys.argv[1:])) 1524 sys.exit(Main(sys.argv[1:]))
1516 1525
1517 # vim: ts=2:sw=2:tw=80:et: 1526 # vim: ts=2:sw=2:tw=80:et:
OLDNEW
« no previous file with comments | « no previous file | pylintrc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698