Improve cbuildbot --list output
- Print more configs with --list.
- Add some more descriptions.
- Sort by description.
- When using --all, move extra configs to bottom.
BUG=None
TEST=ran 'cbuildbot --list' and 'cbuildbot -la'
Change-Id: If754f28d698e907dee0fb1248d0c309e85fb54ec
Reviewed-on: https://gerrit.chromium.org/gerrit/20523
Commit-Ready: Ryan Cui <rcui@chromium.org>
Reviewed-by: Ryan Cui <rcui@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cbuildbot.py b/scripts/cbuildbot.py
index 4ac97d8..87aed98 100644
--- a/scripts/cbuildbot.py
+++ b/scripts/cbuildbot.py
@@ -49,24 +49,27 @@
_BUILDBOT_REQUIRED_BINARIES = ('pbzip2',)
-def _PrintValidConfigs(trybot_only=True):
+def _PrintValidConfigs(display_all=False):
"""Print a list of valid buildbot configs.
Arguments:
- trybot_only: Only print selected trybot configs, as specified by the
- 'trybot_list' config setting.
+ display_all: Print all configs. Otherwise, prints only configs with
+ trybot_list=True.
"""
+ def _GetSortKey(config_name):
+ config_dict = cbuildbot_config.config[config_name]
+ return (not config_dict['trybot_list'], config_dict['description'],
+ config_name)
+
COLUMN_WIDTH = 45
print 'config'.ljust(COLUMN_WIDTH), 'description'
print '------'.ljust(COLUMN_WIDTH), '-----------'
config_names = cbuildbot_config.config.keys()
- config_names.sort()
+ config_names.sort(key=_GetSortKey)
for name in config_names:
- if not trybot_only or cbuildbot_config.config[name]['trybot_list']:
- desc = ''
- if cbuildbot_config.config[name]['description']:
- desc = cbuildbot_config.config[name]['description']
-
+ if display_all or cbuildbot_config.config[name]['trybot_list']:
+ desc = cbuildbot_config.config[name].get('description')
+ desc = desc if desc else ''
print name.ljust(COLUMN_WIDTH), desc
@@ -894,7 +897,7 @@
(options, args) = _ParseCommandLine(parser, argv)
if options.list:
- _PrintValidConfigs(not options.print_all)
+ _PrintValidConfigs(options.print_all)
sys.exit(0)
_PostParseCheck(options, args)