diff --git a/app.go b/app.go index a125afc..25f49b0 100644 --- a/app.go +++ b/app.go @@ -120,7 +120,11 @@ func (a *App) Run(arguments []string) (err error) { if a.After != nil { defer func() { - err = a.After(context) + aferr := a.After(context) + // check Action error to avoid shadowing + if err == nil { + err = aferr + } }() } @@ -208,7 +212,11 @@ func (a *App) RunAsSubcommand(ctx *Context) (err error) { if a.After != nil { defer func() { - err = a.After(context) + aferr := a.After(context) + // check Action error to avoid shadowing + if err == nil { + err = aferr + } }() } diff --git a/app_test.go b/app_test.go index 1e0b638..20978bd 100644 --- a/app_test.go +++ b/app_test.go @@ -396,7 +396,6 @@ func TestApp_AfterFunc(t *testing.T) { } } - func TestAppHelpPrinter(t *testing.T) { oldPrinter := cli.HelpPrinter defer func() {