0
0
mirror of https://github.com/Doodle3D/doodle3d-firmware.git synced 2024-06-26 03:21:22 +02:00
doodle3d-firmware/src/test/ansicolors.lua
Wouter R 9a8ac55b8f Add simple unit test framework and various other improvements/changes:
* Move logger.lua;
* update quotation style in several files;
* add proposed configuration key layout to conf_defaults.lua;
* move dump function to utils.lua;
* implement (very) basic unit testing environment;
* fix bugs in various functions in utils.lua;
* checkin of preliminary REST API test code.
2013-07-17 13:44:54 +02:00

64 lines
1007 B
Lua

-- adapted from: http://lua-users.org/wiki/AnsiTerminalColors
local pairs = pairs
local tostring = tostring
local setmetatable = setmetatable
local schar = string.char
local colormt = {}
function colormt:__tostring()
return self.value
end
function colormt:__concat(other)
return tostring(self) .. tostring(other)
end
function colormt:__call(s)
return self .. s .. colormt.reset
end
colormt.__metatable = {}
local function makecolor(value)
return setmetatable({ value = schar(27) .. '[' .. tostring(value) .. 'm' }, colormt)
end
local colors = {
-- attributes
reset = 0,
clear = 0,
bright = 1,
dim = 2,
underscore = 4,
blink = 5,
reverse = 7,
hidden = 8,
-- foreground
black = 30,
red = 31,
green = 32,
yellow = 33,
blue = 34,
magenta = 35,
cyan = 36,
white = 37,
-- background
onblack = 40,
onred = 41,
ongreen = 42,
onyellow = 43,
onblue = 44,
onmagenta = 45,
oncyan = 46,
onwhite = 47,
}
for c, v in pairs(colors) do
colormt[c] = makecolor(v)
end
return colormt