From a55793cca8749cca991983c1d035631127fa1372 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 23 Mar 2020 10:04:53 +0100 Subject: Keep list of terminals where color support is known to work --- etc/color-terminals.txt | 2 ++ lib/logging.bash | 78 ++++++++++++++++++++++++++++++++++--------------- 2 files changed, 56 insertions(+), 24 deletions(-) create mode 100644 etc/color-terminals.txt diff --git a/etc/color-terminals.txt b/etc/color-terminals.txt new file mode 100644 index 0000000..56f5d5a --- /dev/null +++ b/etc/color-terminals.txt @@ -0,0 +1,2 @@ +screen-256color +xterm-termite diff --git a/lib/logging.bash b/lib/logging.bash index a1ef767..76df937 100644 --- a/lib/logging.bash +++ b/lib/logging.bash @@ -1,7 +1,5 @@ #!/usr/bin/env bash -# TODO: Only use colors on terminals that are known to work well with them. - # The base function to output logging information. This should *not* be used # directly, but the helper functions can be used safely. log() { @@ -21,31 +19,63 @@ log() { printf "${color}[%s] %s\e[0m\n" "$(date +%FT%T)" "$*" >&2 } -debug() { - [[ -z $RSTAR_DEBUG ]] && return - log -c "\e[1;30m" -- "$*" -} +if [[ "$(awk '$1 == "'"$TERM"'" {print 1}' "$BASEDIR/etc/color-terminals.txt")" ]] +then + debug() { + [[ -z $RSTAR_DEBUG ]] && return + log -c "\e[1;30m" -- "$*" + } -info() { - log -- "$*" -} + info() { + log -- "$*" + } -notice() { - log -c "\e[0;34m" -- "$*" -} + notice() { + log -c "\e[0;34m" -- "$*" + } -warn() { - log -c "\e[0;33m" -- "$*" -} + warn() { + log -c "\e[0;33m" -- "$*" + } -crit() { - log -c "\e[0;31m" -- "$*" -} + crit() { + log -c "\e[0;31m" -- "$*" + } -alert() { - log -c "\e[1;31m" -- "$*" -} + alert() { + log -c "\e[1;31m" -- "$*" + } -emerg() { - log -c "\e[1;4;31m" -- "$*" -} + emerg() { + log -c "\e[1;4;31m" -- "$*" + } +else + debug() { + [[ -z $RSTAR_DEBUG ]] && return + log -- "[DEBUG] $*" + } + + info() { + log -- "[INFO] $*" + } + + notice() { + log -- "[NOTIC] $*" + } + + warn() { + log -- "[WARN] $*" + } + + crit() { + log -- "[CRIT] $*" + } + + alert() { + log -- "[ALERT] $*" + } + + emerg() { + log -- "[EMERG] $*" + } +fi -- cgit v1.1