diff options
| author | Alex Flint <[email protected]> | 2019-05-03 13:14:44 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-05-03 13:14:44 -0700 |
| commit | 6de9e789a982b5708c535308315c3d1d54217612 (patch) | |
| tree | 71f1ec963f089cce78c211eef7289e3735d48886 /parse.go | |
| parent | fb1ae1c3e0bd00d45333c3d51384afc05846f7a0 (diff) | |
| parent | 3392c173d71a46d4be61c6c0b02c25e37dbd29e2 (diff) | |
Merge pull request #83 from alexflint/tweak-examples
Add expected outputs to all runnable examples
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 } |
