aboutsummaryrefslogtreecommitdiff
path: root/colors.lua
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-02-11 18:49:00 -0800
committerBruce Hill <bruce@bruce-hill.com>2019-02-11 18:49:04 -0800
commit30a7473d106caafedec53d65aa03fdc92f17d372 (patch)
tree0bb7a85105da114d0488e1395d1b86290c8168c3 /colors.lua
parentc5f8a1b0b391439648d21565d9088b9639a0a913 (diff)
Added color files.
Diffstat (limited to 'colors.lua')
-rw-r--r--colors.lua82
1 files changed, 82 insertions, 0 deletions
diff --git a/colors.lua b/colors.lua
new file mode 100644
index 0000000..046d49a
--- /dev/null
+++ b/colors.lua
@@ -0,0 +1,82 @@
+if COLOR_ENABLED then
+ local codes = {
+ normal = 0,
+ reset = 0,
+ bright = 1,
+ bold = 1,
+ dim = 2,
+ italic = 3,
+ underscore = 4,
+ ["slow blink"] = 5,
+ ["fast blink"] = 6,
+ reverse = 7,
+ inverse = 7,
+ inverted = 7,
+ hidden = 8,
+ strikethrough = 9,
+ black = 30,
+ red = 31,
+ green = 32,
+ yellow = 33,
+ blue = 34,
+ magenta = 35,
+ cyan = 36,
+ white = 37,
+ on_black = 40,
+ on_red = 41,
+ on_green = 42,
+ on_yellow = 43,
+ on_blue = 44,
+ on_magenta = 45,
+ on_cyan = 46,
+ on_white = 47
+ }
+ local inverses = {
+ [0] = 0,
+ [1] = 22,
+ [2] = 22,
+ [3] = 23,
+ [4] = 24,
+ [5] = 25,
+ [6] = 25,
+ [7] = 27,
+ [8] = 28,
+ [9] = 29,
+ [30] = 39,
+ [31] = 39,
+ [32] = 39,
+ [33] = 39,
+ [34] = 39,
+ [35] = 39,
+ [36] = 39,
+ [37] = 39,
+ [38] = 39,
+ [40] = 49,
+ [41] = 49,
+ [42] = 49,
+ [43] = 49,
+ [44] = 49,
+ [45] = 49,
+ [46] = 49,
+ [47] = 49,
+ [48] = 49
+ }
+ return function(colors, s)
+ colors = colors:gsub("on (%a+)", function(self)
+ return codes['on_' .. self]
+ end)
+ colors = colors:gsub("(%a+)", function(self)
+ return codes[self]
+ end)
+ colors = colors:gsub(" ", ";")
+ local colorize = "\x1b[" .. colors .. 'm'
+ local reset = colorize:gsub("%d+", function(c)
+ return inverses[tonumber(c)]
+ end)
+ return s and (colorize .. s .. reset) or colorize
+ end
+else
+ return function(colors, s)
+ return (s or '')
+ end
+end