82 lines
1.9 KiB
Bash
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}" |