kward / shflags

shFlags is a port of the Google gflags library for Unix shell.
Apache License 2.0
283 stars 45 forks source link

Invalid option/parsing error should show help in addition to exception #49

Open Pitterling opened 6 years ago

Pitterling commented 6 years ago

running the hello_world.sh example from the 1.2 doc with an invalid option throws the error and exits .. it would be better to show the help in addition?

# sh test.sh -x
flags:WARN getopt: invalid option -- 'x'
 --
flags:FATAL unable to parse provided options with getopt.

parsing error should show help

# sh test.sh -h
USAGE: test.sh [flags] args
flags:
  -d,--[no]debug:  enable debug mode (default: false)
  -h,--help:  show this help (default: false)
kward commented 4 years ago

Seems reasonable. Of the three semi-random command choices of grep, ls, and find that I tested on my macOS machine, all three provided usage info for an invalid argument. Setting to milestone 1.3.1.

[kward@kward-macpro13 2020-04-13T23:33:13 %0]~/var/wa/github.com/kward/shunit2
$ grep --asdf
grep: unrecognized option `--asdf'
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
    [-e pattern] [-f file] [--binary-files=value] [--color=when]
    [--context[=num]] [--directories=action] [--label] [--line-buffered]
    [--null] [pattern] [file ...]

[kward@kward-macpro13 2020-04-13T23:33:39 %0]~/var/wa/github.com/kward/shunit2
$ ls --asdf
ls: illegal option -- -
usage: ls [-@ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1%] [file ...]

[kward@kward-macpro13 2020-04-13T23:33:42 %0]~/var/wa/github.com/kward/shunit2
$ find --asdf
find: illegal option -- -
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
       find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]