[dpkg] 24/27: dpkg-maintscript-helper: Add color support
Mattia Rizzolo
mattia at debian.org
Mon Oct 23 18:10:29 UTC 2017
This is an automated email from the git hooks/post-receive script.
mattia pushed a commit to branch master
in repository dpkg.
commit 8998ff736606402771745ff27dc43b2cc1165b09
Author: Guillem Jover <guillem at debian.org>
Date: Sun Oct 22 17:29:10 2017 +0200
dpkg-maintscript-helper: Add color support
The initial color support only covered the C and perl programs, and
missed this shell script.
---
debian/changelog | 1 +
man/dpkg-maintscript-helper.man | 8 +++++
scripts/dpkg-maintscript-helper.sh | 64 +++++++++++++++++++++++++++++++++++---
3 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index d5fd0a0..e299527 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,7 @@ dpkg (1.19.1) UNRELEASED; urgency=medium
dpkg-buildpackage, instead of changing directory back and forth.
* Setup and check rootcommand in dpkg-buildpackage only if it is going to
be needed. Reported by Niels Thykier <niels at thykier.net>.
+ * Add color support to dpkg-maintscript-helper (a shell script).
* Perl modules:
- Check that $tarname is defined before use in Dpkg::Source::Package::V1.
Thanks to Christoph Biedl <debian.axhn at manchmal.in-ulm.de>.
diff --git a/man/dpkg-maintscript-helper.man b/man/dpkg-maintscript-helper.man
index 0d608ab..a927b9f 100644
--- a/man/dpkg-maintscript-helper.man
+++ b/man/dpkg-maintscript-helper.man
@@ -254,6 +254,14 @@ The command \fBsupports\fP will return 0 on success, 1 otherwise. The
\fBsupports\fP command will check if the environment variables as set
by dpkg and required by the script are present, and will consider it a
failure in case the environment is not sufficient.
+.
+.SH ENVIRONMENT
+.TP
+.B DPKG_COLORS
+Sets the color mode (since dpkg 1.19.1).
+The currently accepted values are: \fBauto\fP (default), \fBalways\fP and
+\fBnever\fP.
+.
.SH SEE ALSO
.ad l
.BR dh_installdeb (1).
diff --git a/scripts/dpkg-maintscript-helper.sh b/scripts/dpkg-maintscript-helper.sh
index 378d03c..2e5d207 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
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git
More information about the Reproducible-commits
mailing list