diff --git a/pkg/cli/helpers.go b/pkg/cli/helpers.go index f3240b715..986fa407b 100644 --- a/pkg/cli/helpers.go +++ b/pkg/cli/helpers.go @@ -1,15 +1,28 @@ package cli import ( + "errors" "fmt" "os" ) func HandleError(err error) { - if err == nil { + if err = unwrapGeneric(err); err == nil { return } _, _ = fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } + +func unwrapGeneric(err error) error { + for { + g, ok := err.(interface{ IsGeneric() bool }) + if ok && g != nil && g.IsGeneric() { + err = errors.Unwrap(err) + continue + } + + return err + } +}