diff options
author | Mike Frysinger <vapier@google.com> | 2021-07-26 23:46:32 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2021-07-28 05:38:34 +0000 |
commit | 56345c345bdfdd71399d17ccd0ffe8f39bf720eb (patch) | |
tree | efea7101c53e3f8eaea34639a54d8caedd8aa45a /subcmds/help.py | |
parent | a024bd33b808489acc909036b63697a819cc6ce7 (diff) | |
download | git-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.py | 7 |
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): |