Consult tput about color control sequence support

Blocking these sequences on Darwin has false positives (Terminal.app)
and false negatives (Eclipse CDT on Linux).  Instead let's ask the
terminal what it supports.

Change-Id: I907942925a8b30abc1ea920f077b5fc3af815ba4
Signed-off-by: Greg Hackmann <ghackmann@google.com>
This commit is contained in:
Greg Hackmann
2014-06-23 14:05:06 -07:00
parent 7fc55db30e
commit d95c7f70ab

View File

@@ -1651,19 +1651,21 @@ function make()
local hours=$(($tdiff / 3600 ))
local mins=$((($tdiff % 3600) / 60))
local secs=$(($tdiff % 60))
local ncolors=$(tput colors 2>/dev/null)
if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then
color_failed="\e[0;31m"
color_success="\e[0;32m"
color_reset="\e[00m"
else
color_failed=""
color_success=""
color_reset=""
fi
echo
if [ $ret -eq 0 ] ; then
if [ $(uname) != "Darwin" ]; then
echo -n -e "\e[0;32m#### make completed successfully "
else
echo -n -e "#### make completed successfully "
fi
echo -n -e "${color_success}#### make completed successfully "
else
if [ $(uname) != "Darwin" ]; then
echo -n -e "\e[0;31m#### make failed to build some targets "
else
echo -n -e "#### make failed to build some targets "
fi
echo -n -e "${color_failed}#### make failed to build some targets "
fi
if [ $hours -gt 0 ] ; then
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
@@ -1672,9 +1674,7 @@ function make()
elif [ $secs -gt 0 ] ; then
printf "(%s seconds)" $secs
fi
if [ $(uname) != "Darwin" ]; then
echo -e " ####\e[00m"
fi
echo -e " ####${color_reset}"
echo
return $ret
}