bugreport: reject positional arguments
git-bugreport already rejected unrecognized flag arguments, like `--diaggnose`, but this doesn't help if the user's mistake was to forget the `--` in front of the argument. This can result in a user's intended argument not being parsed with no indication to the user that something went wrong. Since git-bugreport presently doesn't take any positionals at all, let's reject all positionals and give the user a usage hint. Signed-off-by: Emily Shaffer <nasamuffin@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
831401bb14
commit
681c0a247b
@ -126,6 +126,11 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix)
|
|||||||
argc = parse_options(argc, argv, prefix, bugreport_options,
|
argc = parse_options(argc, argv, prefix, bugreport_options,
|
||||||
bugreport_usage, 0);
|
bugreport_usage, 0);
|
||||||
|
|
||||||
|
if (argc) {
|
||||||
|
error(_("unknown argument `%s'"), argv[0]);
|
||||||
|
usage(bugreport_usage[0]);
|
||||||
|
}
|
||||||
|
|
||||||
/* Prepare the path to put the result */
|
/* Prepare the path to put the result */
|
||||||
prefixed_filename = prefix_filename(prefix,
|
prefixed_filename = prefix_filename(prefix,
|
||||||
option_output ? option_output : "");
|
option_output ? option_output : "");
|
||||||
|
@ -69,6 +69,13 @@ test_expect_success 'incorrect arguments abort with usage' '
|
|||||||
test_path_is_missing git-bugreport-*
|
test_path_is_missing git-bugreport-*
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'incorrect positional arguments abort with usage and hint' '
|
||||||
|
test_must_fail git bugreport false 2>output &&
|
||||||
|
grep usage output &&
|
||||||
|
grep false output &&
|
||||||
|
test_path_is_missing git-bugreport-*
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'runs outside of a git dir' '
|
test_expect_success 'runs outside of a git dir' '
|
||||||
test_when_finished rm non-repo/git-bugreport-* &&
|
test_when_finished rm non-repo/git-bugreport-* &&
|
||||||
nongit git bugreport
|
nongit git bugreport
|
||||||
|
Reference in New Issue
Block a user