summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-12-03 16:49:07 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-12-03 16:55:30 +0000
commit9e1d92559fcea7243a197726575474d6a49ad927 (patch)
tree7eedda417a4d24947a55e938a4ef69e3115b919c
parentf5e2a84b6981cc12f06c908f9af277d13e64e7e8 (diff)
downloadrspamd-9e1d92559fcea7243a197726575474d6a49ad927.tar.gz
rspamd-9e1d92559fcea7243a197726575474d6a49ad927.zip
[Minor] Disable colors if not a tty
-rw-r--r--lualib/rspamadm/ansicolors.lua14
-rw-r--r--src/lua/lua_util.c20
2 files changed, 32 insertions, 2 deletions
diff --git a/lualib/rspamadm/ansicolors.lua b/lualib/rspamadm/ansicolors.lua
index 739cf427c..81783f618 100644
--- a/lualib/rspamadm/ansicolors.lua
+++ b/lualib/rspamadm/ansicolors.lua
@@ -1,6 +1,9 @@
local colormt = {}
local ansicolors = {}
+local rspamd_util = require "rspamd_util"
+local isatty = rspamd_util.isatty()
+
function colormt:__tostring()
return self.value
end
@@ -14,9 +17,16 @@ function colormt:__call(s)
end
colormt.__metatable = {}
-
local function makecolor(value)
- return setmetatable({ value = string.char(27) .. '[' .. tostring(value) .. 'm' }, colormt)
+ if isatty then
+ return setmetatable({
+ value = string.char(27) .. '[' .. tostring(value) .. 'm'
+ }, colormt)
+ else
+ return setmetatable({
+ value = ''
+ }, colormt)
+ end
end
local colors = {
diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index 29c24f0a0..480269b73 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -411,6 +411,12 @@ LUA_FUNCTION_DEF (util, mkdir);
*/
LUA_FUNCTION_DEF (util, umask);
+/***
+ * @function util.isatty()
+ * Returns if stdout is a tty
+ * @return {boolean} true in case of output being tty
+ */
+LUA_FUNCTION_DEF (util, isatty);
/***
* @function util.pack(fmt, ...)
@@ -559,6 +565,7 @@ static const struct luaL_reg utillib_f[] = {
LUA_INTERFACE_DEF (util, file_exists),
LUA_INTERFACE_DEF (util, mkdir),
LUA_INTERFACE_DEF (util, umask),
+ LUA_INTERFACE_DEF (util, isatty),
LUA_INTERFACE_DEF (util, get_hostname),
LUA_INTERFACE_DEF (util, pack),
LUA_INTERFACE_DEF (util, unpack),
@@ -2253,6 +2260,19 @@ lua_util_umask (lua_State *L)
return 1;
}
+static gint
+lua_util_isatty (lua_State *L)
+{
+ if (isatty (STDOUT_FILENO)) {
+ lua_pushboolean (L, true);
+ }
+ else {
+ lua_pushboolean (L, false);
+ }
+
+ return 1;
+}
+
/* Backport from Lua 5.3 */
/******************************************************************************