From 369e9d91f7ce2ee6824a36da3907c3d334d632c1 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 26 Oct 2020 07:03:19 +0100 Subject: [PATCH] Improve cli error handler --- pkg/cli/helpers.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 + } +}