nagios4/t-tap/colorize.sh

82 lines
1.9 KiB
Bash

#!/bin/sh
# used to colorize the test output
color_off='\033[0m'
black='\033[1;30m'
red='\033[1;31m'
green='\033[1;32m'
yellow='\033[1;33m'
blue='\033[1;34m'
purple='\033[1;35m'
cyan='\033[1;36m'
white='\033[1;37m'
bg_black='\033[40m'
bg_red='\033[41m'
# we want a black background with white text by default
printf "%b" "${bg_black}${white}"
# read stdin
while read line; do
# is this an ok line?
if echo $line | grep "^ok" >/dev/null 2>&1; then
newline=$(echo $line | sed 's/^ok//')
final="${green} ok${white}${newline}"
# not ok line?
elif echo $line | grep "^not ok" >/dev/null 2>&1; then
newline=$(echo $line | sed 's/^not ok//')
final="${bg_red}not ok${bg_black}${newline}"
# comment line?
elif echo $line | grep "^#" >/dev/null 2>&1; then
# not actual comment:
if echo $line | grep "^# Looks like you planned" >/dev/null 2>&1; then
final="${cyan}${line}${white}"
elif echo $line | grep "^# Failed test" >/dev/null 2>&1; then
final="${red}${line}${white}"
# actual comment:
else
newline=$(echo $line | sed 's/^#//')
final="${purple}#${newline}${white}"
fi
# result line
elif echo $line | grep "^Result:" >/dev/null 2>&1; then
newline=$(echo $line | sed 's/^Result://')
if echo $line | grep -i "fail" >/dev/null 2>&1; then
final="${blue}Result: ${red}FAIL${white}"
else
final="${blue}Result: ${green}PASS${white}"
fi
# otherwise just pass it thru
else
final="$line"
fi
# highlight line numbers
#if echo $final | grep "line [0-9]*" >/dev/null 2>&1; then
# DOESNT WORK
#final=$(echo $final | GREP_COLORS="mt=\"01;33\"" grep "line [0-9]*")
#fi
# print out
printf "%b\n" "$final"
done
# reset term colors
printf "%b\n" "${color_off}"