[pacman-dev] [PATCH] makepkg: check tput support before using

Allan McRae allan at archlinux.org
Tue Aug 3 00:57:39 EDT 2010


Prevent makepkg aborting whe colors are enabled and the terminal
does not support setting colors by tput.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 scripts/makepkg.sh.in |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 516e1d7..0527bd6 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1629,12 +1629,22 @@ PACMAN=${PACMAN:-pacman}
 # check if messages are to be printed using color
 unset ALL_OFF BOLD BLUE GREEN RED YELLOW
 if [[ -t 2 && ! $USE_COLOR = "n" && $(check_buildenv color) = "y" ]]; 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)"
+	# 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="\033[1;0m"
+		BOLD="\033[1;1m"
+		BLUE="${BOLD}\033[1;34m"
+		GREEN="${BOLD}\033[1;32m"
+		RED="${BOLD}\033[1;31m"
+		YELLOW="${BOLD}\033[1;33m"
+	fi
 fi
 readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
 
-- 
1.7.2.1



More information about the pacman-dev mailing list