summaryrefslogtreecommitdiff
path: root/scripts/dpkg-maintscript-helper.sh
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2017-10-22 17:29:10 +0200
committerGuillem Jover <guillem@debian.org>2017-10-22 20:14:44 +0200
commit8998ff736606402771745ff27dc43b2cc1165b09 (patch)
tree716fe4410622da5b0c042ca0bf3d148cf90243e9 /scripts/dpkg-maintscript-helper.sh
parent365c88f0d4e5dc136ff0c539e83835aa0d85808b (diff)
downloaddpkg-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-xscripts/dpkg-maintscript-helper.sh64
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=''
+COLOR_BOLD=''
+COLOR_BLACK=''
+COLOR_RED=''
+COLOR_GREEN=''
+COLOR_YELLOW=''
+COLOR_BLUE=''
+COLOR_MAGENTA=''
+COLOR_CYAN=''
+COLOR_WHITE=''
+COLOR_BOLD_BLACK=''
+COLOR_BOLD_RED=''
+COLOR_BOLD_GREEN=''
+COLOR_BOLD_YELLOW=''
+COLOR_BOLD_BLUE=''
+COLOR_BOLD_MAGENTA=''
+COLOR_BOLD_CYAN=''
+COLOR_BOLD_WHITE=''
+
+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