diff options
author | Karl Berry <karl@freefriends.org> | 2018-10-09 21:44:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-10-09 21:44:19 +0000 |
commit | f3266b6d92494d20f968cba7b17804fddc8ac409 (patch) | |
tree | 7a5db15bd3ed22c8b2b79b67bf7046dd1d281b83 /Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua | |
parent | 65e4272f74f437a899e7dd52c5ab52501dca02db (diff) |
cluttex (9oct18)
git-svn-id: svn://tug.org/texlive/trunk@48871 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua')
-rw-r--r-- | Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua b/Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua new file mode 100644 index 00000000000..662711021d5 --- /dev/null +++ b/Master/texmf-dist/doc/support/cluttex/src/texrunner/message.lua @@ -0,0 +1,135 @@ +--[[ + Copyright 2018 ARATA Mizuki + + This file is part of ClutTeX. + + ClutTeX is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ClutTeX is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with ClutTeX. If not, see <http://www.gnu.org/licenses/>. +]] + +local use_colors = false + +local function set_colors(mode) + local M + if mode == "always" then + use_colors = true + M = require "texrunner.isatty" + if M.enable_console_colors then + M.enable_console_colors(io.stderr) + end + elseif mode == "never" then + use_colors = false + elseif mode == "auto" then + M = require "texrunner.isatty" + use_colors = M.isatty(io.stderr) + else + error "The value of --color option must be one of 'auto', 'always', or 'never'." + end + if use_colors and M.enable_console_colors then + M.enable_console_colors(io.stderr) + end +end + +-- ESCAPE: hex 1B = dec 27 = oct 33 + +local CMD = { + reset = "\027[0m", + underline = "\027[4m", + fg_black = "\027[30m", + fg_red = "\027[31m", + fg_green = "\027[32m", + fg_yellow = "\027[33m", + fg_blue = "\027[34m", + fg_magenta = "\027[35m", + fg_cyan = "\027[36m", + fg_white = "\027[37m", + fg_reset = "\027[39m", + bg_black = "\027[40m", + bg_red = "\027[41m", + bg_green = "\027[42m", + bg_yellow = "\027[43m", + bg_blue = "\027[44m", + bg_magenta = "\027[45m", + bg_cyan = "\027[46m", + bg_white = "\027[47m", + bg_reset = "\027[49m", + fg_x_black = "\027[90m", + fg_x_red = "\027[91m", + fg_x_green = "\027[92m", + fg_x_yellow = "\027[93m", + fg_x_blue = "\027[94m", + fg_x_magenta = "\027[95m", + fg_x_cyan = "\027[96m", + fg_x_white = "\027[97m", + bg_x_black = "\027[100m", + bg_x_red = "\027[101m", + bg_x_green = "\027[102m", + bg_x_yellow = "\027[103m", + bg_x_blue = "\027[104m", + bg_x_magenta = "\027[105m", + bg_x_cyan = "\027[106m", + bg_x_white = "\027[107m", +} + +local function exec_msg(commandline) + if use_colors then + io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_red, commandline, CMD.reset, "\n") + else + io.stderr:write("[EXEC] ", commandline, "\n") + end +end + +local function error_msg(...) + local message = table.concat({...}, "") + if use_colors then + io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[ERROR]", CMD.reset, " ", CMD.fg_red, message, CMD.reset, "\n") + else + io.stderr:write("[ERROR] ", message, "\n") + end +end + +local function warn_msg(...) + local message = table.concat({...}, "") + if use_colors then + io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[WARN]", CMD.reset, " ", CMD.fg_blue, message, CMD.reset, "\n") + else + io.stderr:write("[WARN] ", message, "\n") + end +end + +local function diag_msg(...) + local message = table.concat({...}, "") + if use_colors then + io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[DIAG]", CMD.reset, " ", CMD.fg_blue, message, CMD.reset, "\n") + else + io.stderr:write("[DIAG] ", message, "\n") + end +end + +local function info_msg(...) + local message = table.concat({...}, "") + if use_colors then + io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[INFO]", CMD.reset, " ", CMD.fg_magenta, message, CMD.reset, "\n") + else + io.stderr:write("[INFO] ", message, "\n") + end +end + +return { + set_colors = set_colors, + exec = exec_msg, + error = error_msg, + warn = warn_msg, + diag = diag_msg, + info = info_msg, +} |