-
Notifications
You must be signed in to change notification settings - Fork 0
/
util.go
52 lines (41 loc) · 1.1 KB
/
util.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
52
package gostyle
func generateANSISequence(txt, bg string, style ...string) string {
t, b, s := "", "", ""
for key := range ansiColors {
if txt == key {
t = ansiColors["txt"] + ansiColors[key] + ansiColors["separator"]
}
if bg == key {
b = ansiColors["bg"] + ansiColors[key] + ansiColors["separator"]
}
}
for _, st := range style {
for key := range ansiColors {
if st == key {
s += ansiColors[key] + ansiColors["separator"]
}
}
}
if len(s) > 0 {
s = s[:len(s)-1]
} else if len(b) > 0 {
b = b[:len(b)-1]
} else if len(t) > 0 {
t = t[:len(t)-1]
} else {
return ""
}
return ansiColors["escape"] + t + b + s + ansiColors["end"]
}
/*
Formats and displays the strings passed as arguments as an error message
Depending on your use case, DO NOT use this function, as it uses the buil-in
'print' and 'println' functions to display the text (not particularly thread-safe)
*/
func ShowAsError(title, msg string) {
s1, s2 := new(TextStyle), new(TextStyle)
s1.New("red", "black", "bold", "underline")
s2.New("red", "black", "bold")
s1.ShowWithStyle(title)
s2.ShowWithStyle(msg)
}