mirror of
https://github.com/foomo/squadron.git
synced 2025-10-16 12:35:42 +00:00
37 lines
517 B
Go
37 lines
517 B
Go
package util
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/pterm/pterm"
|
|
)
|
|
|
|
func SprintError(err error) string {
|
|
var ret string
|
|
|
|
prefix := "Error: "
|
|
|
|
if pterm.PrintDebugMessages {
|
|
return fmt.Sprintf("%+v", err) + "\n"
|
|
}
|
|
|
|
for {
|
|
w := errors.Unwrap(err)
|
|
if w == nil {
|
|
ret += prefix + err.Error() + "\n"
|
|
break
|
|
}
|
|
|
|
if err.Error() != w.Error() {
|
|
ret += prefix + strings.TrimSuffix(err.Error(), ": "+w.Error()) + "\n"
|
|
prefix = "↪ "
|
|
}
|
|
|
|
err = w
|
|
}
|
|
|
|
return strings.TrimSuffix(ret, "\n")
|
|
}
|