-
Notifications
You must be signed in to change notification settings - Fork 1
/
color.go
186 lines (181 loc) · 5.12 KB
/
color.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
package co
type Colors struct {
Reset ColorFunc
Bold ColorFunc
Dim ColorFunc
Italic ColorFunc
Underline ColorFunc
Inverse ColorFunc
Hidden ColorFunc
Strikethrough ColorFunc
Black ColorFunc
Red ColorFunc
Green ColorFunc
Yellow ColorFunc
Blue ColorFunc
Magenta ColorFunc
Cyan ColorFunc
White ColorFunc
Gray ColorFunc
BgBlack ColorFunc
BgRed ColorFunc
BgGreen ColorFunc
BgYellow ColorFunc
BgBlue ColorFunc
BgMagenta ColorFunc
BgCyan ColorFunc
BgWhite ColorFunc
BlackBright ColorFunc
RedBright ColorFunc
GreenBright ColorFunc
YellowBright ColorFunc
BlueBright ColorFunc
MagentaBright ColorFunc
CyanBright ColorFunc
WhiteBright ColorFunc
BgBlackBright ColorFunc
BgRedBright ColorFunc
BgGreenBright ColorFunc
BgYellowBright ColorFunc
BgBlueBright ColorFunc
BgMagentaBright ColorFunc
BgCyanBright ColorFunc
BgWhiteBright ColorFunc
}
func noop(s string) string {
return s
}
// Create a color utility function with a useColor property
func UseColors(useColor bool) Colors {
if useColor {
return Colors{
Reset: build(0, 0),
Bold: buildWithReplace(1, 22, "\x1b[22m\x1b[1m"),
Dim: buildWithReplace(2, 22, "\x1b[22m\x1b[2m"),
Italic: build(3, 23),
Underline: build(4, 24),
Inverse: build(7, 27),
Hidden: build(8, 28),
Strikethrough: build(9, 29),
Black: build(30, 39),
Red: build(31, 39),
Green: build(32, 39),
Yellow: build(33, 39),
Blue: build(34, 39),
Magenta: build(35, 39),
Cyan: build(36, 39),
White: build(37, 39),
Gray: build(90, 39),
BgBlack: build(40, 49),
BgRed: build(41, 49),
BgGreen: build(42, 49),
BgYellow: build(43, 49),
BgBlue: build(44, 49),
BgMagenta: build(45, 49),
BgCyan: build(46, 49),
BgWhite: build(47, 49),
BlackBright: build(90, 39),
RedBright: build(91, 39),
GreenBright: build(92, 39),
YellowBright: build(93, 39),
BlueBright: build(94, 39),
MagentaBright: build(95, 39),
CyanBright: build(96, 39),
WhiteBright: build(97, 39),
BgBlackBright: build(100, 49),
BgRedBright: build(101, 49),
BgGreenBright: build(102, 49),
BgYellowBright: build(103, 49),
BgBlueBright: build(104, 49),
BgMagentaBright: build(105, 49),
BgCyanBright: build(106, 49),
BgWhiteBright: build(107, 49),
}
} else {
return Colors{
Reset: noop,
Bold: noop,
Dim: noop,
Italic: noop,
Underline: noop,
Inverse: noop,
Hidden: noop,
Strikethrough: noop,
Black: noop,
Red: noop,
Green: noop,
Yellow: noop,
Blue: noop,
Magenta: noop,
Cyan: noop,
White: noop,
Gray: noop,
BgBlack: noop,
BgRed: noop,
BgGreen: noop,
BgYellow: noop,
BgBlue: noop,
BgMagenta: noop,
BgCyan: noop,
BgWhite: noop,
BlackBright: noop,
RedBright: noop,
GreenBright: noop,
YellowBright: noop,
BlueBright: noop,
MagentaBright: noop,
CyanBright: noop,
WhiteBright: noop,
BgBlackBright: noop,
BgRedBright: noop,
BgGreenBright: noop,
BgYellowBright: noop,
BgBlueBright: noop,
BgMagentaBright: noop,
BgCyanBright: noop,
BgWhiteBright: noop,
}
}
}
var colors = CreateColors()
var Reset = colors.Reset
var Bold = colors.Bold
var Dim = colors.Dim
var Italic = colors.Italic
var Underline = colors.Underline
var Inverse = colors.Inverse
var Hidden = colors.Hidden
var Strikethrough = colors.Strikethrough
var Black = colors.Black
var Red = colors.Red
var Green = colors.Green
var Yellow = colors.Yellow
var Blue = colors.Blue
var Magenta = colors.Magenta
var Cyan = colors.Cyan
var White = colors.White
var Gray = colors.Gray
var BgBlack = colors.BgBlack
var BgRed = colors.BgRed
var BgGreen = colors.BgGreen
var BgYellow = colors.BgYellow
var BgBlue = colors.BgBlue
var BgMagenta = colors.BgMagenta
var BgCyan = colors.BgCyan
var BgWhite = colors.BgWhite
var BlackBright = colors.BlackBright
var RedBright = colors.RedBright
var GreenBright = colors.GreenBright
var YellowBright = colors.YellowBright
var BlueBright = colors.BlueBright
var MagentaBright = colors.MagentaBright
var CyanBright = colors.CyanBright
var WhiteBright = colors.WhiteBright
var BgBlackBright = colors.BgBlackBright
var BgRedBright = colors.BgRedBright
var BgGreenBright = colors.BgGreenBright
var BgYellowBright = colors.BgYellowBright
var BgBlueBright = colors.BgBlueBright
var BgMagentaBright = colors.BgMagentaBright
var BgCyanBright = colors.BgCyanBright
var BgWhiteBright = colors.BgWhiteBright