On 24/06/10 20:01, Cedric Staniewski wrote:
Currently, makepkg aborts when colors are enabled (the default) and it
runs in a terminal that does not support it, because tput returns a
non-zero exit code.
---
Another solution would be appending "|| true" to each tput line or disabling
errexit in this section, so we get at
least bold. Not sure if this is a real improvement, when the color option makes
text bold but not colored.
From your comment it seems there terminals that do not support colour
but do support bold. It seems to me that keeping bold text would be
best in that situation.
OK... here comes a potentially stupid question... Are there terminals
that do not support colour and do not support bold. Would that still
give an error here (seems so...)? And do all terminals supporting bold
but not colours support "tput sgr0"?
Once that is cleared up, this is a good candidate for maint.
scripts/makepkg.sh.in | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index dbc4047..1795b54 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1620,8 +1620,11 @@ fi
PACMAN=${PACMAN:-pacman}
# check if messages are to be printed using color
+# It is needed to explicitly check if the terminal supports colors, because
+# otherwise, tput will return a non-zero exit code that stops makepkg due to
+# bash's errexit option.
unset ALL_OFF BOLD BLUE GREEN RED YELLOW
-if [[ -t 2&& ! $USE_COLOR = "n"&& $(check_buildenv color) = "y" ]]; then
+if [[ -t 2&& ! $USE_COLOR = "n"&& $(check_buildenv color) = "y" ]]&& tput setaf
0&>/dev/null; then
ALL_OFF="$(tput sgr0)"
BOLD="$(tput bold)"
BLUE="${BOLD}$(tput setaf 4)"