#
# Script to setup running Bacula regression tests
#
+
+check_exit_code()
+{
+ if [ $? != 0 ] ; then
+ echo "Bad exit code giving up"
+ exit 1
+ fi
+}
+
+. ./config
+
cwd=`pwd`
-if [ $# != 4 ] ; then
- echo "Incorrect number of arguments. Got $#. Need:"
- echo "setup bacula-src email-address --with-DBNAME --with-tcp-wrappers"
- echo " "
- exit 1
-fi
-if [ ! -d $1 ] ; then
- echo "Arg 1 must be a Bacula release directory."
+if [ ! -d ${BACULA_SOURCE} ] ; then
+ echo "The BACULA_SOURCE environment variable must be a Bacula release directory, but is not."
echo " "
exit 1
fi
+
+# we build and setup binaries to the $cwd/bin directory not $bin
rm -rf build bin
# Copy new source
-echo "Copying source from $1"
-cp -rp $1 build
+echo "Copying source from ${BACULA_SOURCE}"
+cp -rp ${BACULA_SOURCE} build
+which git >/dev/null 2>/dev/null
+if [ $? = 0 ] ; then
+ git show HEAD | grep -m 1 commit | awk '{print $2}' > build/git-version
+else
+ echo "Git not found." >build/git-version
+fi
+scripts/create_sed
+# In default bacula-dir.conf.in, change default file
+# to backup to be build directory
+echo "s%File = @sbindir@%File = @BUILD_DIR@%g" >tmp/t$$
+sed -f tmp/t$$ build/src/dird/bacula-dir.conf.in >tmp/o$$
+cp tmp/o$$ build/src/dird/bacula-dir.conf.in
+rm -f tmp/t$$ tmp/o$$
+# remove unneeded directories
+rm -rf build/txt build/src/testprogs
+sed -f tmp/sed_tmp scripts/regress-config.in >scripts/regress-config
+chmod 755 scripts/regress-config
cp scripts/regress-config build
cd build
-rm -f Makefile config.cache
-# Remove files that may be too big
-cd doc/latex
-make clean
-cd ../latex-fr
-make clean
-cd ../images
-rm -f *.png *.jpg *.gif *.eps
-rm -rf hires
-cd ${cwd}/build
-cd rescue/linux/cdrom/cdtree
-rm -rf bacula-*
-cd ${cwd}/build
+rm -f Makefile config.*
# Run Bacula configuration, make, install
-./regress-config ${cwd} $2 $3 $4
-make
+./regress-config ${cwd}
+check_exit_code
+# Cleanup any build in source
+make clean
+make -j3
+check_exit_code
make install
-cp src/tools/testls ../bin
+if [ a$KEEP_SOURCE = a ]; then
+ rm -rf examples patches
+ check_exit_code
+ # eliminate non-essential directories to reduce
+ # size. Otherwise regress run too long
+ rm -rf src/win32 examples patches
+fi
+# get all tools -- especially testls
+cd src/tools
+make installall
+check_exit_code
-cd ..
+cd ${cwd}
bin/bacula stop
+
+mkdir -p working
cd bin
+echo "Running database creation scripts"
./create_bacula_database
./drop_bacula_tables
./make_bacula_tables
./grant_bacula_privileges
-cd ..
+cd ${cwd}
# Start and stop Bacula to ensure conf files are OK
bin/bacula start
bin/bacula stop