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  }