mirror of https://github.com/spf13/cobra.git
Remove some wonky error handling, as upstream seems correct now.
Also, it's buggy for nested commands.
This commit is contained in:
parent
bbdea35c49
commit
2cb625eda3
|
@ -381,7 +381,7 @@ func TestChildCommandFlags(t *testing.T) {
|
||||||
t.Errorf("invalid flag should generate error")
|
t.Errorf("invalid flag should generate error")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.Contains(r.Output, "intone=123") {
|
if !strings.Contains(r.Output, "unknown shorthand flag") {
|
||||||
t.Errorf("Wrong error message displayed, \n %s", r.Output)
|
t.Errorf("Wrong error message displayed, \n %s", r.Output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
16
command.go
16
command.go
|
@ -487,14 +487,15 @@ func (c *Command) Execute() (err error) {
|
||||||
if e != nil {
|
if e != nil {
|
||||||
// Flags parsing had an error.
|
// Flags parsing had an error.
|
||||||
// If an error happens here, we have to report it to the user
|
// If an error happens here, we have to report it to the user
|
||||||
c.Println(c.errorMsgFromParse())
|
c.Println(e.Error())
|
||||||
// If an error happens search also for subcommand info about that
|
// If an error happens search also for subcommand info about that
|
||||||
if c.cmdErrorBuf != nil && c.cmdErrorBuf.Len() > 0 {
|
if c.cmdErrorBuf != nil && c.cmdErrorBuf.Len() > 0 {
|
||||||
c.Println(c.cmdErrorBuf.String())
|
c.Println(c.cmdErrorBuf.String())
|
||||||
} else {
|
} else {
|
||||||
c.Usage()
|
c.Usage()
|
||||||
}
|
}
|
||||||
return e
|
err = e
|
||||||
|
return
|
||||||
} else {
|
} else {
|
||||||
// If help is called, regardless of other flags, we print that
|
// If help is called, regardless of other flags, we print that
|
||||||
if c.helpFlagVal {
|
if c.helpFlagVal {
|
||||||
|
@ -861,16 +862,7 @@ func (c *Command) persistentFlag(name string) (flag *flag.Flag) {
|
||||||
func (c *Command) ParseFlags(args []string) (err error) {
|
func (c *Command) ParseFlags(args []string) (err error) {
|
||||||
c.mergePersistentFlags()
|
c.mergePersistentFlags()
|
||||||
err = c.Flags().Parse(args)
|
err = c.Flags().Parse(args)
|
||||||
|
return
|
||||||
// The upstream library adds spaces to the error
|
|
||||||
// response regardless of success.
|
|
||||||
// Handling it here until fixing upstream
|
|
||||||
if len(strings.TrimSpace(c.flagErrorBuf.String())) > 1 {
|
|
||||||
return fmt.Errorf("%s", c.flagErrorBuf.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
//always return nil because upstream library is inconsistent & we always check the error buffer anyway
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Command) Parent() *Command {
|
func (c *Command) Parent() *Command {
|
||||||
|
|
Loading…
Reference in New Issue