#!/bin/sh -x

#
# Script to setup running Bareos regression tests
#

BAREOS_SOURCE=$(cd .. && pwd)

check_exit_code()
{
   if [ $? != 0 ] ; then
      echo "Bad exit code giving up"
      exit 1
   fi
}

. ./config

cwd=`pwd`
if [ ! -d ${BAREOS_SOURCE} ] ; then
   echo "The BAREOS_SOURCE environment variable must be a Bareos release directory, but is not."
   echo " "
   exit 1
fi

MAKEOPTS=${MAKEOPT:-"-j8"}

#
# We build and setup binaries to the $cwd/bin directory not $bin
#
rm -rf bin

if [ -f ${BAREOS_SOURCE}/.git/config ] && type git >/dev/null 2>&1; then
    #
    # update bareos sources
    #
    (
        cd ${BAREOS_SOURCE};
        git show HEAD | grep commit | head -1 | awk '{print $2}' > git-version
    )
else
    echo "Git not available." > build/git-version
fi

scripts/create_sed



sed -f tmp/sed_tmp scripts/regress-config.in >scripts/regress-config
chmod 755 scripts/regress-config

#
# Run Bareos configuration, make, install
#
sh -x ../regress/scripts/regress-config ${cwd}
check_exit_code

make -C build ${MAKEOPT}
check_exit_code
make -C build install
check_exit_code
make -C build ${MAKEOPT} test
check_exit_code

#  TargetDirectories for gcov
mkdir CMakeFiles
#cp build/CMakeFiles/TargetDirectories.txt CMakeFiles
echo ${cwd} >> CMakeFiles/TargetDirectories.txt

cd ${cwd}
bin/bareos stop

mkdir -p working
# make sure everything is cleaned up
touch working/CLEANUPMARKER

cd bin
echo "Running database creation scripts"
./create_bareos_database ${DBTYPE}
./drop_bareos_tables ${DBTYPE}
./make_bareos_tables ${DBTYPE}
./grant_bareos_privileges ${DBTYPE}

echo "initializing database driver"
./bareos-config initialize_database_driver

cd ${cwd}

rm_if_exists() {
   if [ -e $1 ]; then
      rm -f $1
   fi
}

#
# Build webui
#


sh -x ../regress/scripts/regress-config-webui ${cwd}
check_exit_code

make -C build-webui install
check_exit_code

mv bin/bareos-dir.d/console/admin.conf.example bin/bareos-dir.d/console/admin.conf

echo "webui can be started with  'php -S 127.0.0.1:9100 -t ../webui/public/'"

exit 0
