mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
CmdRunner now displays ANSI color codes
This commit is contained in:
286
wtf/colors.go
286
wtf/colors.go
@@ -1,9 +1,271 @@
|
||||
package wtf
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
||||
"github.com/gdamore/tcell"
|
||||
)
|
||||
|
||||
var colorMap = map[int]string{
|
||||
0: "#000000",
|
||||
1: "#800000",
|
||||
2: "#008000",
|
||||
3: "#808000",
|
||||
4: "#000080",
|
||||
5: "#800080",
|
||||
6: "#008080",
|
||||
7: "#c0c0c0",
|
||||
8: "#808080",
|
||||
9: "#ff0000",
|
||||
10: "#00ff00",
|
||||
11: "#ffff00",
|
||||
12: "#0000ff",
|
||||
13: "#ff00ff",
|
||||
14: "#00ffff",
|
||||
15: "#ffffff",
|
||||
16: "#000000",
|
||||
17: "#00005f",
|
||||
18: "#000087",
|
||||
19: "#0000af",
|
||||
20: "#0000d7",
|
||||
21: "#0000ff",
|
||||
22: "#005f00",
|
||||
23: "#005f5f",
|
||||
24: "#005f87",
|
||||
25: "#005faf",
|
||||
26: "#005fd7",
|
||||
27: "#005fff",
|
||||
28: "#008700",
|
||||
29: "#00875f",
|
||||
30: "#008787",
|
||||
31: "#0087af",
|
||||
32: "#0087d7",
|
||||
33: "#0087ff",
|
||||
34: "#00af00",
|
||||
35: "#00af5f",
|
||||
36: "#00af87",
|
||||
37: "#00afaf",
|
||||
38: "#00afd7",
|
||||
39: "#00afff",
|
||||
40: "#00d700",
|
||||
41: "#00d75f",
|
||||
42: "#00d787",
|
||||
43: "#00d7af",
|
||||
44: "#00d7d7",
|
||||
45: "#00d7ff",
|
||||
46: "#00ff00",
|
||||
47: "#00ff5f",
|
||||
48: "#00ff87",
|
||||
49: "#00ffaf",
|
||||
50: "#00ffd7",
|
||||
51: "#00ffff",
|
||||
52: "#5f0000",
|
||||
53: "#5f005f",
|
||||
54: "#5f0087",
|
||||
55: "#5f00af",
|
||||
56: "#5f00d7",
|
||||
57: "#5f00ff",
|
||||
58: "#5f5f00",
|
||||
59: "#5f5f5f",
|
||||
60: "#5f5f87",
|
||||
61: "#5f5faf",
|
||||
62: "#5f5fd7",
|
||||
63: "#5f5fff",
|
||||
64: "#5f8700",
|
||||
65: "#5f875f",
|
||||
66: "#5f8787",
|
||||
67: "#5f87af",
|
||||
68: "#5f87d7",
|
||||
69: "#5f87ff",
|
||||
70: "#5faf00",
|
||||
71: "#5faf5f",
|
||||
72: "#5faf87",
|
||||
73: "#5fafaf",
|
||||
74: "#5fafd7",
|
||||
75: "#5fafff",
|
||||
76: "#5fd700",
|
||||
77: "#5fd75f",
|
||||
78: "#5fd787",
|
||||
79: "#5fd7af",
|
||||
80: "#5fd7d7",
|
||||
81: "#5fd7ff",
|
||||
82: "#5fff00",
|
||||
83: "#5fff5f",
|
||||
84: "#5fff87",
|
||||
85: "#5fffaf",
|
||||
86: "#5fffd7",
|
||||
87: "#5fffff",
|
||||
88: "#870000",
|
||||
89: "#87005f",
|
||||
90: "#870087",
|
||||
91: "#8700af",
|
||||
92: "#8700d7",
|
||||
93: "#8700ff",
|
||||
94: "#875f00",
|
||||
95: "#875f5f",
|
||||
96: "#875f87",
|
||||
97: "#875faf",
|
||||
98: "#875fd7",
|
||||
99: "#875fff",
|
||||
100: "#878700",
|
||||
101: "#87875f",
|
||||
102: "#878787",
|
||||
103: "#8787af",
|
||||
104: "#8787d7",
|
||||
105: "#8787ff",
|
||||
106: "#87af00",
|
||||
107: "#87af5f",
|
||||
108: "#87af87",
|
||||
109: "#87afaf",
|
||||
110: "#87afd7",
|
||||
111: "#87afff",
|
||||
112: "#87d700",
|
||||
113: "#87d75f",
|
||||
114: "#87d787",
|
||||
115: "#87d7af",
|
||||
116: "#87d7d7",
|
||||
117: "#87d7ff",
|
||||
118: "#87ff00",
|
||||
119: "#87ff5f",
|
||||
120: "#87ff87",
|
||||
121: "#87ffaf",
|
||||
122: "#87ffd7",
|
||||
123: "#87ffff",
|
||||
124: "#af0000",
|
||||
125: "#af005f",
|
||||
126: "#af0087",
|
||||
127: "#af00af",
|
||||
128: "#af00d7",
|
||||
129: "#af00ff",
|
||||
130: "#af5f00",
|
||||
131: "#af5f5f",
|
||||
132: "#af5f87",
|
||||
133: "#af5faf",
|
||||
134: "#af5fd7",
|
||||
135: "#af5fff",
|
||||
136: "#af8700",
|
||||
137: "#af875f",
|
||||
138: "#af8787",
|
||||
139: "#af87af",
|
||||
140: "#af87d7",
|
||||
141: "#af87ff",
|
||||
142: "#afaf00",
|
||||
143: "#afaf5f",
|
||||
144: "#afaf87",
|
||||
145: "#afafaf",
|
||||
146: "#afafd7",
|
||||
147: "#afafff",
|
||||
148: "#afd700",
|
||||
149: "#afd75f",
|
||||
150: "#afd787",
|
||||
151: "#afd7af",
|
||||
152: "#afd7d7",
|
||||
153: "#afd7ff",
|
||||
154: "#afff00",
|
||||
155: "#afff5f",
|
||||
156: "#afff87",
|
||||
157: "#afffaf",
|
||||
158: "#afffd7",
|
||||
159: "#afffff",
|
||||
160: "#d70000",
|
||||
161: "#d7005f",
|
||||
162: "#d70087",
|
||||
163: "#d700af",
|
||||
164: "#d700d7",
|
||||
165: "#d700ff",
|
||||
166: "#d75f00",
|
||||
167: "#d75f5f",
|
||||
168: "#d75f87",
|
||||
169: "#d75faf",
|
||||
170: "#d75fd7",
|
||||
171: "#d75fff",
|
||||
172: "#d78700",
|
||||
173: "#d7875f",
|
||||
174: "#d78787",
|
||||
175: "#d787af",
|
||||
176: "#d787d7",
|
||||
177: "#d787ff",
|
||||
178: "#d7af00",
|
||||
179: "#d7af5f",
|
||||
180: "#d7af87",
|
||||
181: "#d7afaf",
|
||||
182: "#d7afd7",
|
||||
183: "#d7afff",
|
||||
184: "#d7d700",
|
||||
185: "#d7d75f",
|
||||
186: "#d7d787",
|
||||
187: "#d7d7af",
|
||||
188: "#d7d7d7",
|
||||
189: "#d7d7ff",
|
||||
190: "#d7ff00",
|
||||
191: "#d7ff5f",
|
||||
192: "#d7ff87",
|
||||
193: "#d7ffaf",
|
||||
194: "#d7ffd7",
|
||||
195: "#d7ffff",
|
||||
196: "#ff0000",
|
||||
197: "#ff005f",
|
||||
198: "#ff0087",
|
||||
199: "#ff00af",
|
||||
200: "#ff00d7",
|
||||
201: "#ff00ff",
|
||||
202: "#ff5f00",
|
||||
203: "#ff5f5f",
|
||||
204: "#ff5f87",
|
||||
205: "#ff5faf",
|
||||
206: "#ff5fd7",
|
||||
207: "#ff5fff",
|
||||
208: "#ff8700",
|
||||
209: "#ff875f",
|
||||
210: "#ff8787",
|
||||
211: "#ff87af",
|
||||
212: "#ff87d7",
|
||||
213: "#ff87ff",
|
||||
214: "#ffaf00",
|
||||
215: "#ffaf5f",
|
||||
216: "#ffaf87",
|
||||
217: "#ffafaf",
|
||||
218: "#ffafd7",
|
||||
219: "#ffafff",
|
||||
220: "#ffd700",
|
||||
221: "#ffd75f",
|
||||
222: "#ffd787",
|
||||
223: "#ffd7af",
|
||||
224: "#ffd7d7",
|
||||
225: "#ffd7ff",
|
||||
226: "#ffff00",
|
||||
227: "#ffff5f",
|
||||
228: "#ffff87",
|
||||
229: "#ffffaf",
|
||||
230: "#ffffd7",
|
||||
231: "#ffffff",
|
||||
232: "#080808",
|
||||
233: "#121212",
|
||||
234: "#1c1c1c",
|
||||
235: "#262626",
|
||||
236: "#303030",
|
||||
237: "#3a3a3a",
|
||||
238: "#444444",
|
||||
239: "#4e4e4e",
|
||||
240: "#585858",
|
||||
241: "#626262",
|
||||
242: "#6c6c6c",
|
||||
243: "#767676",
|
||||
244: "#808080",
|
||||
245: "#8a8a8a",
|
||||
246: "#949494",
|
||||
247: "#9e9e9e",
|
||||
248: "#a8a8a8",
|
||||
249: "#b2b2b2",
|
||||
250: "#bcbcbc",
|
||||
251: "#c6c6c6",
|
||||
252: "#d0d0d0",
|
||||
253: "#dadada",
|
||||
254: "#e4e4e4",
|
||||
255: "#eeeeee",
|
||||
}
|
||||
|
||||
var colors = map[string]tcell.Color{
|
||||
"aliceblue": tcell.ColorAliceBlue,
|
||||
"antiquewhite": tcell.ColorAntiqueWhite,
|
||||
@@ -147,6 +409,17 @@ var colors = map[string]tcell.Color{
|
||||
"yellowgreen": tcell.ColorYellowGreen,
|
||||
}
|
||||
|
||||
func ASCIItoTviewColors(text string) string {
|
||||
boldRegExp := regexp.MustCompile(`\033\[1m`)
|
||||
fgColorRegExp := regexp.MustCompile(`\033\[38;5;(?P<color>\d+)m`)
|
||||
resColorRegExp := regexp.MustCompile(`\033\[0m`)
|
||||
|
||||
return resColorRegExp.ReplaceAllString(
|
||||
boldRegExp.ReplaceAllString(
|
||||
fgColorRegExp.ReplaceAllStringFunc(
|
||||
text, replaceWithHexColorString), `[::b]`), `[-]`)
|
||||
}
|
||||
|
||||
func ColorFor(label string) tcell.Color {
|
||||
if _, ok := colors[label]; ok {
|
||||
return colors[label]
|
||||
@@ -154,3 +427,16 @@ func ColorFor(label string) tcell.Color {
|
||||
return tcell.ColorGreen
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------- Unexported Functions -------------------- */
|
||||
|
||||
func replaceWithHexColorString(substring string) string {
|
||||
colorID, err := strconv.Atoi(substring[7 : len(substring)-1])
|
||||
if err != nil {
|
||||
return substring
|
||||
}
|
||||
|
||||
hexColor := "[" + colorMap[colorID] + "]"
|
||||
|
||||
return hexColor
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user