diff options
author | Guillem Jover <guillem@debian.org> | 2017-10-22 17:29:10 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2017-10-22 20:14:44 +0200 |
commit | 8998ff736606402771745ff27dc43b2cc1165b09 (patch) | |
tree | 716fe4410622da5b0c042ca0bf3d148cf90243e9 /scripts/dpkg-maintscript-helper.sh | |
parent | 365c88f0d4e5dc136ff0c539e83835aa0d85808b (diff) | |
download | dpkg-8998ff736606402771745ff27dc43b2cc1165b09.tar.gz |
dpkg-maintscript-helper: Add color support
The initial color support only covered the C and perl programs, and
missed this shell script.
Diffstat (limited to 'scripts/dpkg-maintscript-helper.sh')
-rwxr-xr-x | scripts/dpkg-maintscript-helper.sh | 64 |
1 files changed, 60 insertions, 4 deletions
diff --git a/scripts/dpkg-maintscript-helper.sh b/scripts/dpkg-maintscript-helper.sh index 378d03c15..2e5d207bc 100755 --- a/scripts/dpkg-maintscript-helper.sh +++ b/scripts/dpkg-maintscript-helper.sh @@ -537,19 +537,72 @@ symlink_match() [ "$(readlink -f "$SYMLINK")" = "$SYMLINK_TARGET" ] } +# Standard ANSI colors and attributes. +COLOR_NORMAL='' +COLOR_RESET='[0m' +COLOR_BOLD='[1m' +COLOR_BLACK='[30m' +COLOR_RED='[31m' +COLOR_GREEN='[32m' +COLOR_YELLOW='[33m' +COLOR_BLUE='[34m' +COLOR_MAGENTA='[35m' +COLOR_CYAN='[36m' +COLOR_WHITE='[37m' +COLOR_BOLD_BLACK='[1;30m' +COLOR_BOLD_RED='[1;31m' +COLOR_BOLD_GREEN='[1;32m' +COLOR_BOLD_YELLOW='[1;33m' +COLOR_BOLD_BLUE='[1;34m' +COLOR_BOLD_MAGENTA='[1;35m' +COLOR_BOLD_CYAN='[1;36m' +COLOR_BOLD_WHITE='[1;37m' + +setup_colors() +{ + : ${DPKG_COLORS=auto} + + case "$DPKG_COLORS" in + auto) + if [ -t 1 ]; then + USE_COLORS=yes + else + USE_COLORS=no + fi + ;; + always) + USE_COLORS=yes + ;; + *) + USE_COLORS=no + ;; + esac + + if [ $USE_COLORS = yes ]; then + COLOR_PROG="$COLOR_BOLD" + COLOR_INFO="$COLOR_GREEN" + COLOR_NOTICE="$COLOR_YELLOW" + COLOR_WARN="$COLOR_BOLD_YELLOW" + COLOR_ERROR="$COLOR_BOLD_RED" + else + COLOR_RESET="" + fi + FMT_PROG="$COLOR_PROG$PROGNAME$COLOR_RESET" +} + debug() { if [ -n "$DPKG_DEBUG" ]; then - echo "DEBUG: $PROGNAME: $*" >&2 + echo "DEBUG: $FMT_PROG: $*" >&2 fi } error() { - echo "$PROGNAME: error: $*" >&2 + echo "$FMT_PROG: ${COLOR_ERROR}error${COLOR_RESET}: $*" >&2 exit 1 } warning() { - echo "$PROGNAME: warning: $*" >&2 + echo "$FMT_PROG: ${COLOR_WARN}warning${COLOR_RESET}: $*" >&2 } usage() { @@ -576,7 +629,7 @@ END } badusage() { - echo "$PROGNAME: error: $1" >&2 + echo "$FMT_PROG: ${COLOR_ERROR}error${COLOR_RESET}: $1" >&2 echo >&2 echo "Use '$PROGNAME help' for program usage information." >&2 exit 1 @@ -587,6 +640,9 @@ set -e PROGNAME=$(basename "$0") version="unknown" + +setup_colors + command="$1" [ $# -gt 0 ] || badusage "missing command" shift |