diff options
| author | Alex Flint <[email protected]> | 2019-05-03 13:07:12 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2019-05-03 13:07:12 -0700 |
| commit | 3392c173d71a46d4be61c6c0b02c25e37dbd29e2 (patch) | |
| tree | 71f1ec963f089cce78c211eef7289e3735d48886 /parse.go | |
| parent | e2ce620ee44f6ef454c46351883971a213c04f68 (diff) | |
add expected output for usage example
Diffstat (limited to 'parse.go')
| -rw-r--r-- | parse.go | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -13,6 +13,9 @@ import ( scalar "github.com/alexflint/go-scalar" ) +// to enable monkey-patching during tests +var osExit = os.Exit + // spec represents a command line option type spec struct { dest reflect.Value @@ -38,20 +41,21 @@ func MustParse(dest ...interface{}) *Parser { p, err := NewParser(Config{}, dest...) if err != nil { fmt.Println(err) - os.Exit(-1) + osExit(-1) } + err = p.Parse(flags()) - if err == ErrHelp { + switch { + case err == ErrHelp: p.WriteHelp(os.Stdout) - os.Exit(0) - } - if err == ErrVersion { + osExit(0) + case err == ErrVersion: fmt.Println(p.version) - os.Exit(0) - } - if err != nil { + osExit(0) + case err != nil: p.Fail(err.Error()) } + return p } |
