update api docs for Parser.Parse

This commit is contained in:
Alex Flint 2024-09-05 17:15:02 -04:00
parent 7cf32414af
commit b13a62172a
2 changed files with 12 additions and 11 deletions

View File

@ -582,7 +582,7 @@ if p.Subcommand() == nil {
``` ```
### Programmatic error handling ### Custom handling of --help and --version
The following reproduces the internal logic of `MustParse` for the simple case where The following reproduces the internal logic of `MustParse` for the simple case where
you are not using subcommands or --version. This allows you to respond you are not using subcommands or --version. This allows you to respond
@ -625,9 +625,6 @@ Usage: ./example --something SOMETHING
$ ./example $ ./example
error: --something is required error: --something is required
Usage: ./example --something SOMETHING Usage: ./example --something SOMETHING
$ ./example --something abc
got "abc"
``` ```
To also handle --version programatically, use the following: To also handle --version programatically, use the following:
@ -686,13 +683,10 @@ Usage: example --something SOMETHING
$ ./example $ ./example
error: --something is required error: --something is required
Usage: example --something SOMETHING Usage: example --something SOMETHING
$ ./example --something abc
got "abc"
``` ```
To also handle subcommands, use this most general version (also works in absence of subcommands but To generate subcommand-specific help messages, use the following most general version
is a bit more complex): (this also works in absence of subcommands but is a bit more complex):
```go ```go
type fetchCmd struct { type fetchCmd struct {
@ -761,7 +755,7 @@ Global options:
### API Documentation ### API Documentation
https://godoc.org/github.com/alexflint/go-arg https://pkg.go.dev/github.com/alexflint/go-arg
### Rationale ### Rationale

View File

@ -494,7 +494,14 @@ func cmdFromStruct(name string, dest path, t reflect.Type) (*command, error) {
} }
// Parse processes the given command line option, storing the results in the field // Parse processes the given command line option, storing the results in the field
// of the structs from which NewParser was constructed // of the structs from which NewParser was constructed.
//
// It returns ErrHelp if "--help" is one of the command line args and ErrVersion if
// "--version" is one of the command line args (the latter only applies if the
// destination struct passed to NewParser implements Versioned.)
//
// To respond to --help and --version in the way that MustParse does, see examples
// in the README under "Custom handling of --help and --version".
func (p *Parser) Parse(args []string) error { func (p *Parser) Parse(args []string) error {
err := p.process(args) err := p.process(args)
if err != nil { if err != nil {