Print error after usage when UsageOnError is set.

Previously, the underlying error was often lost when usage output was
large.
This commit is contained in:
Alec Thomas
2019-06-21 09:53:05 +10:00
parent 8c83948cff
commit 9d0bd59611
+2 -2
View File
@@ -324,13 +324,13 @@ func (k *Kong) FatalIfErrorf(err error, args ...interface{}) {
if len(args) > 0 {
msg = fmt.Sprintf(args[0].(string), args[1:]...) + ": " + err.Error()
}
k.Errorf("%s", msg)
// Maybe display usage information.
if err, ok := err.(*ParseError); ok && k.usageOnError {
fmt.Fprintln(k.Stdout)
options := k.helpOptions
_ = k.help(options, err.Context)
fmt.Fprintln(k.Stdout)
}
k.Errorf("%s", msg)
k.Exit(1)
}