summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2019-12-02 16:49:44 -0500
committerDavid Pursehouse <dpursehouse@collab.net>2019-12-05 05:00:21 +0000
commit7c321f1bf6c19efdeae1042acfff5933ab4b376f (patch)
tree4deadb4e6d60fd6e8d990f309b2e0c83719f2416
parent7ac12a9b2296028a2e9fe5eb8a0dcc07c81a630a (diff)
downloadgit-repo-7c321f1bf6c19efdeae1042acfff5933ab4b376f.tar.gz
git-repo-7c321f1bf6c19efdeae1042acfff5933ab4b376f.zip
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>
-rwxr-xr-xmain.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/main.py b/main.py
index 6e74d5a48..16db144ff 100755
--- a/main.py
+++ b/main.py
@@ -27,6 +27,7 @@ import netrc
import optparse
import os
import sys
+import textwrap
import time
from pyversion import is_python3
@@ -71,8 +72,10 @@ if not is_python3():
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 @@ class _Repo(object):
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):