From 9e1d92559fcea7243a197726575474d6a49ad927 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 3 Dec 2017 16:49:07 +0000 Subject: [PATCH] [Minor] Disable colors if not a tty --- lualib/rspamadm/ansicolors.lua | 14 ++++++++++++-- src/lua/lua_util.c | 20 ++++++++++++++++++++ 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 */ /****************************************************************************** -- 2.39.5