Something went wrong. Try again.
background code checker for golang
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596package gust
import ( "fmt"
"github.com/charmbracelet/bubbles/spinner" tea "github.com/charmbracelet/bubbletea")
type Status struct { Kind StatusKind Spinner spinner.Model}
func NewStatus() Status { return Status{ Kind: Initializing, Spinner: spinner.New(spinner.WithSpinner(spinner.Line)), }}
type StatusKind int
const ( Initializing StatusKind = iota Success Running Error)
func (s StatusKind) String() string { switch s { case Initializing: return "initializing" case Success: return "success" case Running: return "running" case Error: return "error" default: return "error" }}
func (s StatusKind) Cmd() tea.Cmd { return func() tea.Msg { return s }}
func (s StatusKind) Style() spinner.Spinner { switch s { case Initializing: return spinner.Dot case Success: return spinner.Jump default: return spinner.Dot }}
func (s Status) Init() tea.Cmd { return tea.Batch(Initializing.Cmd(), s.Spinner.Tick)}
func (s Status) Update(msg tea.Msg) (Status, tea.Cmd) { switch msg := msg.(type) { case StatusKind: s.Kind = msg s.Spinner.Spinner = s.Kind.Style() return s, nil case spinner.TickMsg: var cmd tea.Cmd s.Spinner, cmd = s.Spinner.Update(msg) return s, cmd }
return s, nil}
func (s Status) View() string { switch s.Kind { case Initializing: return fmt.Sprintf("initializing %s", s.Spinner.View()) case Success: return fmt.Sprintf("success") case Running: return fmt.Sprintf("running %s", s.Spinner.View()) case Error: return "error" default: return "error" }}