mirror of
https://github.com/spf13/cobra
synced 2025-05-06 13:27:26 +00:00
Simplify error return
Signed-off-by: Pierre-Emmanuel Jacquier <pierre-emmanuel.jacquier@epitech.eu>
This commit is contained in:
parent
d667ccf480
commit
834a53c099
1 changed files with 16 additions and 13 deletions
29
command.go
29
command.go
|
@ -693,7 +693,7 @@ func (c *Command) ArgsLenAtDash() int {
|
||||||
return c.Flags().ArgsLenAtDash()
|
return c.Flags().ArgsLenAtDash()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Command) execute(a []string) *CmdError {
|
func (c *Command) execute(a []string) error {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return &CmdError{fmt.Errorf("Called Execute() on a nil Command"), CommandError}
|
return &CmdError{fmt.Errorf("Called Execute() on a nil Command"), CommandError}
|
||||||
}
|
}
|
||||||
|
@ -870,23 +870,27 @@ func (c *Command) ExecuteC() (cmd *Command, err error) {
|
||||||
cmd.commandCalledAs.name = cmd.Name()
|
cmd.commandCalledAs.name = cmd.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
cmdErr := cmd.execute(flags)
|
err = cmd.execute(flags)
|
||||||
if cmdErr != nil {
|
if err != nil {
|
||||||
// Always show help if requested, even if SilenceErrors is in
|
|
||||||
// effect
|
|
||||||
if cmdErr.CmdErrorType == ErrHelp {
|
|
||||||
cmd.HelpFunc()(cmd, args)
|
|
||||||
return cmd, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if cmdErr.CmdErrorType == RunError && (!cmd.ShowRunErrorUsage && !c.ShowRunErrorUsage) {
|
cmdErr, ok := err.(*CmdError)
|
||||||
return cmd, cmdErr
|
if ok {
|
||||||
|
// Always show help if requested, even if SilenceErrors is in
|
||||||
|
// effect
|
||||||
|
if cmdErr.CmdErrorType == ErrHelp {
|
||||||
|
cmd.HelpFunc()(cmd, args)
|
||||||
|
return cmd, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if cmdErr.CmdErrorType == RunError && (!cmd.ShowRunErrorUsage && !c.ShowRunErrorUsage) {
|
||||||
|
return cmd, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If root command has SilentErrors flagged,
|
// If root command has SilentErrors flagged,
|
||||||
// all subcommands should respect it
|
// all subcommands should respect it
|
||||||
if !cmd.SilenceErrors && !c.SilenceErrors {
|
if !cmd.SilenceErrors && !c.SilenceErrors {
|
||||||
c.Println("Error:", cmdErr)
|
c.Println("Error:", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If root command has SilentUsage flagged,
|
// If root command has SilentUsage flagged,
|
||||||
|
@ -894,7 +898,6 @@ func (c *Command) ExecuteC() (cmd *Command, err error) {
|
||||||
if !cmd.SilenceUsage && !c.SilenceUsage {
|
if !cmd.SilenceUsage && !c.SilenceUsage {
|
||||||
c.Println(cmd.UsageString())
|
c.Println(cmd.UsageString())
|
||||||
}
|
}
|
||||||
return cmd, cmdErr
|
|
||||||
}
|
}
|
||||||
return cmd, err
|
return cmd, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue