github.com/kubeshop/testkube@v1.17.23/pkg/ui/errors.go (about) 1 package ui 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 func (ui *UI) ExitOnError(item string, errors ...error) { 9 ui.printAndExit(item, true, errors...) 10 } 11 12 func (ui *UI) PrintOnError(item string, errors ...error) { 13 ui.printAndExit(item, false, errors...) 14 } 15 16 func (ui *UI) printAndExit(item string, exitOnError bool, errors ...error) { 17 if len(errors) > 0 && ui.hasErrors(errors...) { 18 ui.NL() 19 for _, err := range errors { 20 if err != nil { 21 writer := Writer 22 if exitOnError { 23 writer = os.Stderr 24 } 25 26 fmt.Fprintf(writer, "%s (error: %s)\n\n", Red(item), err) 27 if exitOnError { 28 os.Exit(1) 29 } 30 } 31 } 32 } 33 34 if ui.Verbose { 35 fmt.Fprintf(Writer, "%s %s\n", Blue("\xE2\x9C\x94"), Green(item)) 36 } 37 } 38 39 func (ui *UI) WarnOnError(item string, errors ...error) { 40 if len(errors) > 0 && ui.hasErrors(errors...) { 41 for _, err := range errors { 42 if err != nil { 43 fmt.Fprintf(Writer, "%s %s (error: %s)\n\n", LightYellow("тип"), Yellow(item), err) 44 return 45 } 46 } 47 } 48 49 if ui.Verbose { 50 fmt.Fprintf(Writer, "%s %s\n", Blue("\xE2\x9C\x94"), Green(item)) 51 } 52 } 53 54 func (ui *UI) hasErrors(errors ...error) bool { 55 if len(errors) > 0 { 56 for _, err := range errors { 57 if err != nil { 58 return true 59 } 60 } 61 } 62 63 return false 64 }