diff options
Diffstat (limited to 'tool')
-rwxr-xr-x | tool/ifchange | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/tool/ifchange b/tool/ifchange index 488e9db26e..6a1923c167 100755 --- a/tool/ifchange +++ b/tool/ifchange @@ -37,11 +37,29 @@ if [ "$temp" = - ]; then trap 'rm -f "$temp"' 0 fi +msg_begin= msg_unchanged= msg_updated= msg_reset= +if [ -t ]; then + msg_begin="`tput smso 2>/dev/null`" + case "$msg_begin" in + ""*m) + msg_begin="`echo "$msg_begin" | sed 's/[0-9]*m$//'`" + if [ ${TEST_COLORS:+set} ]; then + msg_unchanged=`expr ":$TEST_COLORS:" : ".*:pass=\([^:]*\):"` + msg_updated=`expr ":$TEST_COLORS:" : ".*:fail=\([^:]*\):"` + fi + msg_unchanged="${msg_begin}${msg_unchanged:-32;1}m" + msg_updated="${msg_begin}${msg_updated:-31;1}m" + msg_reset="${msg_begin}m" + ;; + esac + unset msg_begin +fi + if [ -f "$target" -a ! -${empty:+f}${empty:-s} "$temp" ] || cmp "$target" "$temp" >/dev/null 2>&1; then - echo "$target unchanged" + echo "$target ${msg_unchanged}unchanged${msg_reset}" rm -f "$temp" else - echo "$target updated" + echo "$target ${msg_updated}updated${msg_reset}" [ x"${keepsuffix}" = x ] || mv -f "$target" "${target}${keepsuffix}" mv -f "$temp" "$target" fi |