mirror of
https://github.com/turbot/steampipe.git
synced 2026-02-15 13:00:08 -05:00
59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/fatih/color"
|
|
"github.com/shiena/ansicolor"
|
|
)
|
|
|
|
var (
|
|
colorErr = color.RedString("Error")
|
|
colorWarn = color.YellowString("Warning")
|
|
colorNotice = color.GreenString("Notice")
|
|
)
|
|
|
|
func init() {
|
|
color.Output = ansicolor.NewAnsiColorWriter(os.Stderr)
|
|
}
|
|
|
|
func FailOnError(err error) {
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
func FailOnErrorWithMessage(err error, message string) {
|
|
if err != nil {
|
|
panic(fmt.Sprintf("%s %s", message, err.Error()))
|
|
}
|
|
}
|
|
|
|
func ShowError(err error) {
|
|
fmt.Fprintf(color.Output, "%s: %v\n", colorErr, trimDriversFromErrMsg(err.Error()))
|
|
}
|
|
|
|
func ShowErrorWithMessage(err error, message string) {
|
|
fmt.Fprintf(color.Output, "%s: %s - %v\n", colorErr, message, trimDriversFromErrMsg(err.Error()))
|
|
}
|
|
|
|
// remove the pq: and rpc error prefixes along
|
|
// with all the unnecessary information that comes from the
|
|
// drivers
|
|
func trimDriversFromErrMsg(msg string) string {
|
|
errString := strings.TrimSpace(msg)
|
|
if strings.HasPrefix(errString, "pq:") {
|
|
errString = strings.TrimSpace(strings.TrimPrefix(errString, "pq:"))
|
|
if strings.HasPrefix(errString, "rpc error") {
|
|
// trim out "rpc error: code = Unknown desc ="
|
|
errString = strings.TrimSpace(errString[33:])
|
|
}
|
|
}
|
|
return errString
|
|
}
|
|
|
|
func ShowWarning(warning string) {
|
|
fmt.Fprintf(color.Output, "%s: %v\n", colorWarn, warning)
|
|
}
|