#!/bin/bash

RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
NORMAL="\033[0;39m"

OK=0
DIFF=0

echo -e "${YELLOW}-------------------------------------------------${NORMAL}"
echo -e "${YELLOW}running the eyelet examples and test cases${NORMAL}"
echo -e "${YELLOW}using eyelet $(tpl -g main eyelet.pl 2>&1 | awk '{ print $2 }') and trealla $(tpl --version 2>&1 | awk '{ print $6 }' | sed 's/-.*//')${NORMAL}"
echo -e "${YELLOW}-------------------------------------------------${NORMAL}"
echo ""

pad () {
    [ "$#" -gt 1 ]
    [ -n "$2" ]
    printf "%$2.${2#-}s" "$1"
}

begin=$(($(date +%s)))
for file in input/*.pl
do
    f="$(basename ${file})"
    echo -en "$(pad "${f}" -36)"
    start=$(($(date +%s%N)/1000000))
    tpl -g main eyelet.pl "${file}" > output-trealla/${f}
    end=$(($(date +%s%N)/1000000))
    echo -en "${YELLOW}$(pad "`expr $end - $start` ms" 10)${NORMAL} "
    if [[ $(git diff output-trealla/${f} | wc -l) -eq 0 ]]; then
        echo -e "${GREEN}OK${NORMAL}"
        ((OK++))
    else
        echo -e "${RED}DIFF${NORMAL}"
        ((DIFF++))
    fi
done
end=$(($(date +%s)))
echo ""

echo -e "${YELLOW}`expr $end - $begin` s${NORMAL} ${GREEN}${OK} OK${NORMAL} ${RED}${DIFF} DIFF${NORMAL}"
if [[ ${DIFF} -eq 0 ]]; then
    exit 0
else
    exit 2
fi
