The environment only variables don't accept command
line options, but should still be listed in the
help message.
Instead of listing the command line flags the
placeholder text '(environment only)' is displayed.
Nested structs are now suppored - both pointer and
embedded. These nested structs can be presented as
option groups with their own group name and help
section.
As outlined in #49, there is a need to mimic the behavior of other
applications by interweaving positional and non-positional parameters.
This change adds the 'separate' option that will force a arg of type
[]string to only read the next supplied value.
For example, when dealing with the following arg type:
var MyArgs struct {
Pos []string `arg:"positional"`
Separate []string `arg:"-s,separate"`
}
This commit will parse the following command line:
./app pos1 pos2 -s=separate1 -s=separate2 pos3 -s=separate3 pos4
Such that MyArgs.Pos will be [pos1 pos2 pos3 pos4] and MyArgs.Separate
will be [separate1 separate2 separate3].
Unit tests for the above have also been written and are included in this
commit, as well as the addition of a section to README.md and an example
func in example_test.go.
Fixes#49