github.com/kubeshop/testkube@v1.17.23/pkg/ui/spinner.go (about)

     1  package ui
     2  
     3  import "github.com/pterm/pterm"
     4  
     5  var (
     6  	checkInfoPrinter = pterm.Info.
     7  				WithMessageStyle(pterm.NewStyle(pterm.FgWhite, pterm.BgDefault)).
     8  				WithPrefix(pterm.Prefix{Text: " ️", Style: pterm.NewStyle(pterm.FgDefault, pterm.BgDefault)})
     9  
    10  	checkOkPrinter = pterm.Info.
    11  			WithMessageStyle(pterm.NewStyle(pterm.FgWhite, pterm.BgDefault)).
    12  			WithPrefix(pterm.Prefix{Text: "✅", Style: pterm.NewStyle(pterm.FgDefault, pterm.BgDefault)})
    13  
    14  	checkFailPrinter = pterm.Info.
    15  				WithMessageStyle(pterm.NewStyle(pterm.FgRed, pterm.BgDefault)).
    16  				WithPrefix(pterm.Prefix{Text: "❗", Style: pterm.NewStyle(pterm.FgDefault, pterm.BgDefault)})
    17  )
    18  
    19  func NewSpinner(t string) *pterm.SpinnerPrinter {
    20  	s := pterm.DefaultSpinner.
    21  		WithSequence(` ⠋ `, ` ⠹ `, ` ⠼ `, ` ⠦ `, ` ⠇ `)
    22  	s.SuccessPrinter = checkOkPrinter
    23  	s.InfoPrinter = checkInfoPrinter
    24  	s.FailPrinter = checkFailPrinter
    25  	sp, _ := s.Start(t)
    26  	return sp
    27  }