From: Alexander Barton Date: Fri, 1 Dec 2017 11:12:35 +0000 (+0100) Subject: ax-common.sh: Only use colors when writing to a terminal X-Git-Url: https://arthur.barton.de/gitweb/?p=ax-unix.git;a=commitdiff_plain;h=efa4c456d6b2e978c439cba8ac82f2f00b9c967c ax-common.sh: Only use colors when writing to a terminal --- diff --git a/lib/ax/ax-common.sh b/lib/ax/ax-common.sh index e51f816..c0362ff 100644 --- a/lib/ax/ax-common.sh +++ b/lib/ax/ax-common.sh @@ -14,20 +14,26 @@ # shellcheck disable=SC2034 ax_common_sourced=2 -# Display a colored message. +# Display a colored message (a plain message, when not writing to a terminal). # $1 Level: -=title, 0=ok, 1=warning, 2=error. # $2 Word(s) to highlight. # $3-n Remaining word(s). [optional] ax_msg1() { - case "$1" in - "0") c="32"; shift; ;; # green - "1") c="33"; shift; ;; # yellow - "2") c="31"; shift; ;; # red - "-") c="1"; shift; ;; # bold - *) c="0"; - esac - # print colored word(s): - printf "\033[0;%sm%s\033[0m " "${c}" "${1}" + if [ -t 1 ]; then + # writing to a terminal ... + case "$1" in + "0") c="32"; shift; ;; # green + "1") c="33"; shift; ;; # yellow + "2") c="31"; shift; ;; # red + "-") c="1"; shift; ;; # bold + *) c="0"; + esac + # print colored word(s): + printf "\033[0;%sm%s\033[0m " "${c}" "${1}" + else + # print plain text: + printf "%s " "${1}" + fi shift # print remaining word(s) and trailing newline: echo "${*}"