diff options
author | William Giokas <1007380@gmail.com> | 2013-03-04 02:08:42 -0600 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-03-08 17:04:39 +1000 |
commit | 65650f2cdb04629810cb7545e35ad8af9e25b072 (patch) | |
tree | ea1968b42fd7fcbffdfec7aecd1c08f2d18953aa | |
parent | e292b1b5a24e8e106f1c38c7e99e494f841d9346 (diff) |
scripts: Add color to library/output_format.sh
Use the same colors as makepkg in messages. Add in the 'plain' function
as well.
To use the colors, you need to include the term_colors.sh file, or add
definitions for the colors explicitly.
Signed-off-by: William Giokas <1007380@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | scripts/library/README | 9 | ||||
-rw-r--r-- | scripts/library/output_format.sh | 16 | ||||
-rw-r--r-- | scripts/library/term_colors.sh | 21 |
3 files changed, 38 insertions, 8 deletions
diff --git a/scripts/library/README b/scripts/library/README index 0fa0f847..c28ebc60 100644 --- a/scripts/library/README +++ b/scripts/library/README @@ -2,9 +2,9 @@ This folder contains code snippets that can be reused by multiple scripts. A brief description of each file follows. output_format.sh: -Provides basic output formatting functions with levels 'msg', 'msg2', -'warning' and 'error'. The 'msg' amd 'msg2' functions print to stdout -and can be silenced by defining 'QUIET'. The 'warning' and 'error' +Provides basic output formatting functions with levels 'plain', 'msg', +'msg2', 'warning' and 'error'. The 'msg' amd 'msg2' functions print to +stdout and can be silenced by defining 'QUIET'. The 'warning' and 'error' functions print to stderr with the appropriate prefix added to the message. @@ -39,3 +39,6 @@ as mawk or busybox awk. size_to_human.sh: The reverse of human_to_size, this function takes an integer byte size and prints its in human readable format, with SI prefixes (e.g. MiB, TiB). + +term_colors.sh: +Contains some common color settings for output_format.sh. diff --git a/scripts/library/output_format.sh b/scripts/library/output_format.sh index 9e890e76..18f1f588 100644 --- a/scripts/library/output_format.sh +++ b/scripts/library/output_format.sh @@ -1,21 +1,27 @@ +plain() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + msg() { (( QUIET )) && return local mesg=$1; shift - printf "==> ${mesg}\n" "$@" >&1 + printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 } msg2() { (( QUIET )) && return local mesg=$1; shift - printf " -> ${mesg}\n" "$@" >&1 + printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 } warning() { local mesg=$1; shift - printf "==> $(gettext "WARNING:") ${mesg}\n" "$@" >&2 + printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 } error() { local mesg=$1; shift - printf "==> $(gettext "ERROR:") ${mesg}\n" "$@" >&2 -}
\ No newline at end of file + printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} diff --git a/scripts/library/term_colors.sh b/scripts/library/term_colors.sh new file mode 100644 index 00000000..a675247c --- /dev/null +++ b/scripts/library/term_colors.sh @@ -0,0 +1,21 @@ +# check if messages are to be printed using color +unset ALL_OFF BOLD BLUE GREEN RED YELLOW +if [[ -t 2 && ! $USE_COLOR = "n" ]]; then + # prefer terminal safe colored and bold text when tput is supported + if tput setaf 0 &>/dev/null; then + ALL_OFF="$(tput sgr0)" + BOLD="$(tput bold)" + BLUE="${BOLD}$(tput setaf 4)" + GREEN="${BOLD}$(tput setaf 2)" + RED="${BOLD}$(tput setaf 1)" + YELLOW="${BOLD}$(tput setaf 3)" + else + ALL_OFF="\e[1;0m" + BOLD="\e[1;1m" + BLUE="${BOLD}\e[1;34m" + GREEN="${BOLD}\e[1;32m" + RED="${BOLD}\e[1;31m" + YELLOW="${BOLD}\e[1;33m" + fi +fi +readonly ALL_OFF BOLD BLUE GREEN RED YELLOW |