/
terminal.go
51 lines (41 loc) · 904 Bytes
/
terminal.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package utils
import (
"github.com/briandowns/spinner"
"github.com/gookit/color"
"time"
)
//contains loading spinners and utility messages
var s *spinner.Spinner
func init() {
style := spinner.CharSets[14]
interval := 100 * time.Millisecond
s = spinner.New(style, interval)
s.HideCursor = true
}
func StartSpinner(message ...string) {
if len(message) > 0 {
s.Prefix = message[0]
} else {
s.Prefix = "Retrieving data... "
}
s.Start()
}
func StopSpinner() {
s.Stop()
}
func NoteMessage(message string) {
StopSpinner() //To stop any active spinners, if any.
color.Bold.Println(message)
}
func InfoMessage(message string) {
StopSpinner()
color.Gray.Println("INFO: ", message)
}
func SuccessMessage(message string) {
StopSpinner()
color.Green.Println("SUCCESS: ", message)
}
func WarningMessage(message string) {
StopSpinner()
color.Yellow.Println("WARNING: ", message)
}