Better error handling

This commit is contained in:
spf13 2013-09-04 11:23:13 -04:00
parent 36e08ffd5b
commit a618569eea
1 changed files with 11 additions and 6 deletions

View File

@ -67,12 +67,13 @@ func (c *Commander) SetArgs(a []string) {
c.args = a
}
func (c *Commander) Execute() {
func (c *Commander) Execute() (err error) {
if len(c.args) == 0 {
c.execute(os.Args[1:])
err = c.execute(os.Args[1:])
} else {
c.execute(c.args)
err = c.execute(c.args)
}
return
}
// Command is just that, a command for your application.
@ -137,9 +138,13 @@ func (c *Command) execute(args []string) (err error) {
cmd, a, e := c.Find(args)
if e == nil {
err = cmd.ParseFlags(a)
argWoFlags := cmd.Flags().Args()
cmd.Run(cmd, argWoFlags)
return nil
if err != nil {
return err
} else {
argWoFlags := cmd.Flags().Args()
cmd.Run(cmd, argWoFlags)
return nil
}
}
err = e
return err