OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 # Copyright (C) 2008 Evan Martin <martine@danga.com> | 6 # Copyright (C) 2008 Evan Martin <martine@danga.com> |
7 | 7 |
8 """A git-command for integrating reviews on Rietveld.""" | 8 """A git-command for integrating reviews on Rietveld.""" |
9 | 9 |
10 from distutils.version import LooseVersion | 10 from distutils.version import LooseVersion |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 max(len(str(get_builder(b))) for b in builds.itervalues())) | 446 max(len(str(get_builder(b))) for b in builds.itervalues())) |
447 def get_name(b): | 447 def get_name(b): |
448 return name_fmt % get_builder(b) | 448 return name_fmt % get_builder(b) |
449 | 449 |
450 def sort_key(b): | 450 def sort_key(b): |
451 return b['status'], b.get('result'), get_name(b), b.get('url') | 451 return b['status'], b.get('result'), get_name(b), b.get('url') |
452 | 452 |
453 def pop(title, f, color=None, **kwargs): | 453 def pop(title, f, color=None, **kwargs): |
454 """Pop matching builds from `builds` dict and print them.""" | 454 """Pop matching builds from `builds` dict and print them.""" |
455 | 455 |
456 if not sys.stdout.isatty() or color is None: | 456 if not options.color or color is None: |
457 colorize = str | 457 colorize = str |
458 else: | 458 else: |
459 colorize = lambda x: '%s%s%s' % (color, x, Fore.RESET) | 459 colorize = lambda x: '%s%s%s' % (color, x, Fore.RESET) |
460 | 460 |
461 result = [] | 461 result = [] |
462 for b in builds.values(): | 462 for b in builds.values(): |
463 if all(b.get(k) == v for k, v in kwargs.iteritems()): | 463 if all(b.get(k) == v for k, v in kwargs.iteritems()): |
464 builds.pop(b['id']) | 464 builds.pop(b['id']) |
465 result.append(b) | 465 result.append(b) |
466 if result: | 466 if result: |
(...skipping 3078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3545 for builder in sorted(builders): | 3545 for builder in sorted(builders): |
3546 print ' %*s: %s' % (length, builder, ','.join(builders[builder])) | 3546 print ' %*s: %s' % (length, builder, ','.join(builders[builder])) |
3547 return 0 | 3547 return 0 |
3548 | 3548 |
3549 | 3549 |
3550 def CMDtry_results(parser, args): | 3550 def CMDtry_results(parser, args): |
3551 group = optparse.OptionGroup(parser, "Try job results options") | 3551 group = optparse.OptionGroup(parser, "Try job results options") |
3552 group.add_option( | 3552 group.add_option( |
3553 "-p", "--patchset", type=int, help="patchset number if not current.") | 3553 "-p", "--patchset", type=int, help="patchset number if not current.") |
3554 group.add_option( | 3554 group.add_option( |
3555 "--print-master", action='store_true', help="print master name as well") | 3555 "--print-master", action='store_true', help="print master name as well.") |
| 3556 group.add_option( |
| 3557 "--color", action='store_true', default=sys.stdout.isatty(), |
| 3558 help="force color output, useful when piping output.") |
3556 group.add_option( | 3559 group.add_option( |
3557 "--buildbucket-host", default='cr-buildbucket.appspot.com', | 3560 "--buildbucket-host", default='cr-buildbucket.appspot.com', |
3558 help="Host of buildbucket. The default host is %default.") | 3561 help="Host of buildbucket. The default host is %default.") |
3559 parser.add_option_group(group) | 3562 parser.add_option_group(group) |
3560 auth.add_auth_options(parser) | 3563 auth.add_auth_options(parser) |
3561 options, args = parser.parse_args(args) | 3564 options, args = parser.parse_args(args) |
3562 if args: | 3565 if args: |
3563 parser.error('Unrecognized args: %s' % ' '.join(args)) | 3566 parser.error('Unrecognized args: %s' % ' '.join(args)) |
3564 | 3567 |
3565 auth_config = auth.extract_auth_config_from_options(options) | 3568 auth_config = auth.extract_auth_config_from_options(options) |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3983 if __name__ == '__main__': | 3986 if __name__ == '__main__': |
3984 # These affect sys.stdout so do it outside of main() to simplify mocks in | 3987 # These affect sys.stdout so do it outside of main() to simplify mocks in |
3985 # unit testing. | 3988 # unit testing. |
3986 fix_encoding.fix_encoding() | 3989 fix_encoding.fix_encoding() |
3987 colorama.init() | 3990 colorama.init() |
3988 try: | 3991 try: |
3989 sys.exit(main(sys.argv[1:])) | 3992 sys.exit(main(sys.argv[1:])) |
3990 except KeyboardInterrupt: | 3993 except KeyboardInterrupt: |
3991 sys.stderr.write('interrupted\n') | 3994 sys.stderr.write('interrupted\n') |
3992 sys.exit(1) | 3995 sys.exit(1) |
OLD | NEW |