Argument specification (in usage-line) customization & "smart" default #59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I find the defaut
$argv0 [OPTIONS]
is very bare bones.A custom spec can now be passed using a new
arg_spec
attribute:Which shows up in the first usage line:
I've also added some smart option detection, so the default spec can now show
COMMAND
,OPTIONS
andARGS
, with a...
if multiple are valid and surrounded by[]
if optional.If you find this useful I will update the documentation and would also add tests before considering this ready to merge.
I would also like to allow more customization, like formatting the strings as
command
or<command>
instead of fixating on the currentUPPER_CASE
.My ultimate vision would also allow generation of a "full" command-spec like
Usage: $argv0 [-h|--help] [-v] [--file FILE] [-- PATHS...]
. This does get unwieldy when a tool has lots of options, so it should definitely be optional. Maybe a user can also tag "important" options to include in the usage-line and leave out the rest.If I add these I will implement them in separate PRs.