summaryrefslogtreecommitdiffstats
path: root/subcmds/help.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2021-07-26 23:46:32 -0400
committerMike Frysinger <vapier@google.com>2021-07-28 05:38:34 +0000
commit56345c345bdfdd71399d17ccd0ffe8f39bf720eb (patch)
treeefea7101c53e3f8eaea34639a54d8caedd8aa45a /subcmds/help.py
parenta024bd33b808489acc909036b63697a819cc6ce7 (diff)
downloadgit-repo-56345c345bdfdd71399d17ccd0ffe8f39bf720eb.tar.gz
repo: refactor help output handling
Currently we have the behavior: * `repo`: Equivalent to `repo help` -- only shows common subcommands (with short description), and then exits 0. * `repo --help`: Shows repo's core options, lists all commands (no specific info), and then exits 0. The first case is not behaving well: * If you run `repo` without a specific subcommand, that's an error, so we should be exiting 1 instead. * Showing only subcommands and no actual option summary makes it seem like repo itself doesn't take any options. This confuses users. Let's rework things a bit. Now we have the behavior: * `repo`: Shows repo's core options, lists all commands (no specific info), and then exits 1. * `repo --help`: Shows repo's core options, shows common subcommands (with short description), and then exits 0. * `repo --help-all`: Shows repo's core options, shows all subcommands (with short description), and then exits 0. Basically we swap the behavior of `repo` and `repo --help`, and fix the exit status when the subcommand is missing. The addition of --help-all is mostly for the man pages. We were relying on `repo help --all` to generate the repo(1) man page, but that too omitted the core repo options. Now the man page includes all the core repo options and provides a summary of all commands. Change-Id: I1f99b99d5b8af2591f96a078d0647a3d76d6b0fc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/312908 Reviewed-by: Xin Li <delphij@google.com> Tested-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'subcmds/help.py')
-rw-r--r--subcmds/help.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/subcmds/help.py b/subcmds/help.py
index f302e75c..1a60ef45 100644
--- a/subcmds/help.py
+++ b/subcmds/help.py
@@ -50,14 +50,21 @@ Displays detailed usage information about a command.
50 50
51 def _PrintAllCommands(self): 51 def _PrintAllCommands(self):
52 print('usage: repo COMMAND [ARGS]') 52 print('usage: repo COMMAND [ARGS]')
53 self.PrintAllCommandsBody()
54
55 def PrintAllCommandsBody(self):
53 print('The complete list of recognized repo commands are:') 56 print('The complete list of recognized repo commands are:')
54 commandNames = list(sorted(all_commands)) 57 commandNames = list(sorted(all_commands))
55 self._PrintCommands(commandNames) 58 self._PrintCommands(commandNames)
56 print("See 'repo help <command>' for more information on a " 59 print("See 'repo help <command>' for more information on a "
57 'specific command.') 60 'specific command.')
61 print('Bug reports:', Wrapper().BUG_URL)
58 62
59 def _PrintCommonCommands(self): 63 def _PrintCommonCommands(self):
60 print('usage: repo COMMAND [ARGS]') 64 print('usage: repo COMMAND [ARGS]')
65 self.PrintCommonCommandsBody()
66
67 def PrintCommonCommandsBody(self):
61 print('The most commonly used repo commands are:') 68 print('The most commonly used repo commands are:')
62 69
63 def gitc_supported(cmd): 70 def gitc_supported(cmd):