#!/usr/bin/env sh

source_dir=$PWD
working_dir=$PWD/testing_tmp
working_bak=$PWD/testing_bak

rm -rf $working_dir
mkdir -p $working_dir
cd $working_dir

git clone --quiet ssh://git@git.serguzim.me:3022/emgauwa/controller.git controller || exit
pushd ./controller > /dev/null
git checkout $2
mkdir build
cd build

cmake -DWIRING_PI_DEBUG=on .. >/dev/null
cp $source_dir/controller.testing.ini ./controller.ini
make >/dev/null
./controller start >$working_dir/controller.log 2>&1 &
controller_id=$!
popd > /dev/null

cp $1 $working_dir/core
cp $source_dir/core.testing.ini $working_dir/core.ini

$working_dir/core start >$working_dir/core.log 2>&1 &
core_id=$!

sleep 2;

tavern-ci --disable-warnings $source_dir
test_result=$?

kill $core_id
kill $controller_id

if [ $test_result -gt 0 ]
then
    rm -rf $working_bak
    mv $working_dir $working_bak
fi

rm -rf $working_dir

exit $test_result