Simplify error return

Signed-off-by: Pierre-Emmanuel Jacquier <pierre-emmanuel.jacquier@epitech.eu>
This commit is contained in:
Pierre-Emmanuel Jacquier 2018-07-04 15:22:18 +02:00
parent d667ccf480
commit 834a53c099

View file

@ -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,8 +870,11 @@ 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 {
cmdErr, ok := err.(*CmdError)
if ok {
// Always show help if requested, even if SilenceErrors is in // Always show help if requested, even if SilenceErrors is in
// effect // effect
if cmdErr.CmdErrorType == ErrHelp { if cmdErr.CmdErrorType == ErrHelp {
@ -880,13 +883,14 @@ func (c *Command) ExecuteC() (cmd *Command, err error) {
} }
if cmdErr.CmdErrorType == RunError && (!cmd.ShowRunErrorUsage && !c.ShowRunErrorUsage) { if cmdErr.CmdErrorType == RunError && (!cmd.ShowRunErrorUsage && !c.ShowRunErrorUsage) {
return cmd, cmdErr 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
} }