This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch master
in repository dpkg.

commit 8998ff736606402771745ff27dc43b2cc1165b09
Author: Guillem Jover <[email protected]>
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 <[email protected]>.
+  * 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 <[email protected]>.
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=''
+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

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/dpkg/dpkg.git

Reply via email to