Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alpkeskin
GitHub Repository: alpkeskin/mosint
Path: blob/master/v3/internal/spinner/spinner.go
689 views
1
/*
2
Copyright © 2023 github.com/alpkeskin
3
*/
4
package spinner
5
6
import (
7
"time"
8
9
"github.com/theckman/yacspin"
10
)
11
12
type Spinner struct {
13
spinner *yacspin.Spinner
14
}
15
16
func New(suffix string) *Spinner {
17
cfg := yacspin.Config{
18
Frequency: 100 * time.Millisecond,
19
CharSet: yacspin.CharSets[59],
20
Suffix: " " + suffix,
21
SuffixAutoColon: true,
22
StopCharacter: "✓",
23
StopColors: []string{"fgGreen"},
24
StopFailCharacter: "✗",
25
StopFailColors: []string{"fgRed"},
26
}
27
28
spinner, err := yacspin.New(cfg)
29
30
if err != nil {
31
panic(err)
32
}
33
34
return &Spinner{
35
spinner: spinner,
36
}
37
}
38
39
func (s *Spinner) Start() {
40
s.spinner.Start()
41
}
42
43
func (s *Spinner) Stop() {
44
s.spinner.Stop()
45
}
46
47
func (s *Spinner) StopFail() {
48
s.spinner.StopFail()
49
}
50
51
func (s *Spinner) SetMessage(message string) {
52
s.spinner.Message(message)
53
}
54
55