squadron/internal/util/errors.go
2025-03-25 10:44:26 +01:00

33 lines
513 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")
}