Message ID | 20210904021231.88534-2-carenas@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] bugreport: avoid duplicating options in usage() | expand |
Carlo Marcelo Arenas Belón <carenas@gmail.com> writes: > 238b439d69 (bugreport: add tool to generate debugging info, 2020-04-16) > includes the options with the commandline, which then means they will > be duplicated in the output of `git bugreport -h`. > > remove them and while at it, make sure usage() is called if the wrong > number of parameters is provided (ex: `git bugreport help`) 'remove' -> 'Remove'. > static const char * const bugreport_usage[] = { > - N_("git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"), > + N_("git bugreport"), I do not quite see this as an improvement. Without this change, the user will see usage: git bugreport [-o <file>] [-s <format>] -o <file> ... explanation of what -o does ... -s <format> ... explanation of what -s does ... and with the patch, it becomes unclear, especially for those who are not used to "git subcommand -h" output convention, as we'd see only usage: git bugreport on the first line, no? If the patch is to use N_("git bugreport [<options>]") as the new text, then that would be an improvement, though. > @@ -141,6 +140,8 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix) > > argc = parse_options(argc, argv, prefix, bugreport_options, > bugreport_usage, 0); > + if (argc) > + usage_with_options(bugreport_usage, bugreport_options); This is a good change (until we gain positional argument to the subcommand, at which time we'd need to rethink the error checking). > /* Prepare the path to put the result */ > prefixed_filename = prefix_filename(prefix,
diff --git a/builtin/bugreport.c b/builtin/bugreport.c index 9915a5841d..17042381c3 100644 --- a/builtin/bugreport.c +++ b/builtin/bugreport.c @@ -5,7 +5,6 @@ #include "compat/compiler.h" #include "run-command.h" - static void get_system_info(struct strbuf *sys_info) { struct utsname uname_info; @@ -87,7 +86,7 @@ static void get_populated_hooks(struct strbuf *hook_info, int nongit) } static const char * const bugreport_usage[] = { - N_("git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"), + N_("git bugreport"), NULL }; @@ -141,6 +140,8 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix) argc = parse_options(argc, argv, prefix, bugreport_options, bugreport_usage, 0); + if (argc) + usage_with_options(bugreport_usage, bugreport_options); /* Prepare the path to put the result */ prefixed_filename = prefix_filename(prefix,
238b439d69 (bugreport: add tool to generate debugging info, 2020-04-16) includes the options with the commandline, which then means they will be duplicated in the output of `git bugreport -h`. remove them and while at it, make sure usage() is called if the wrong number of parameters is provided (ex: `git bugreport help`) Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com> --- builtin/bugreport.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)