summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Giokas <1007380@gmail.com>2013-03-04 09:08:42 +0100
committerAllan McRae <allan@archlinux.org>2013-03-08 08:04:39 +0100
commit65650f2cdb04629810cb7545e35ad8af9e25b072 (patch)
treeea1968b42fd7fcbffdfec7aecd1c08f2d18953aa
parente292b1b5a24e8e106f1c38c7e99e494f841d9346 (diff)
downloadpacman-65650f2cdb04629810cb7545e35ad8af9e25b072.tar.gz
pacman-65650f2cdb04629810cb7545e35ad8af9e25b072.tar.xz
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/README9
-rw-r--r--scripts/library/output_format.sh16
-rw-r--r--scripts/library/term_colors.sh21
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