repo: include subcommands in --help output
Also point people to `repo help` so it's easier to navigate the tool.
Bug: https://crbug.com/gerrit/12022
Change-Id: Ib3be331a2cef32caa193640bf8d54bd1443fce60
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/247292
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
diff --git a/main.py b/main.py
index 6e74d5a..16db144 100755
--- a/main.py
+++ b/main.py
@@ -27,6 +27,7 @@
import optparse
import os
import sys
+import textwrap
import time
from pyversion import is_python3
@@ -71,8 +72,10 @@
input = raw_input
global_options = optparse.OptionParser(
- usage="repo [-p|--paginate|--no-pager] COMMAND [ARGS]"
- )
+ usage='repo [-p|--paginate|--no-pager] COMMAND [ARGS]',
+ add_help_option=False)
+global_options.add_option('-h', '--help', action='store_true',
+ help='show this help message and exit')
global_options.add_option('-p', '--paginate',
dest='pager', action='store_true',
help='display command output in the pager')
@@ -123,6 +126,14 @@
argv = []
gopts, _gargs = global_options.parse_args(glob)
+ if gopts.help:
+ global_options.print_help()
+ commands = ' '.join(sorted(self.commands))
+ wrapped_commands = textwrap.wrap(commands, width=77)
+ print('\nAvailable commands:\n %s' % ('\n '.join(wrapped_commands),))
+ print('\nRun `repo help <command>` for command-specific details.')
+ global_options.exit()
+
return (name, gopts, argv)
def _Run(self, name, gopts, argv):