Merge pull request #230 from codegangsta/do-not-swallow-after-error

Aggregate errors from Before/After
This commit is contained in:
Jesse Szwedko
2015-06-02 20:29:44 -07:00
3 changed files with 79 additions and 8 deletions

24
app.go
View File

@@ -132,10 +132,14 @@ func (a *App) Run(arguments []string) (err error) {
if a.After != nil {
defer func() {
// err is always nil here.
// There is a check to see if it is non-nil
// just few lines before.
err = a.After(context)
afterErr := a.After(context)
if afterErr != nil {
if err != nil {
err = NewMultiError(err, afterErr)
} else {
err = afterErr
}
}
}()
}
@@ -225,10 +229,14 @@ func (a *App) RunAsSubcommand(ctx *Context) (err error) {
if a.After != nil {
defer func() {
// err is always nil here.
// There is a check to see if it is non-nil
// just few lines before.
err = a.After(context)
afterErr := a.After(context)
if afterErr != nil {
if err != nil {
err = NewMultiError(err, afterErr)
} else {
err = afterErr
}
}
}()
}