#!/bin/sh

set -e

echo "#######################################################################"
echo "# Setting up database configuration...                                #"
cat <<EOF | debconf-set-selections
kopano kopano-server/mysql/method select unix socket
kopano kopano-server/missing-db-package-error select abort
kopano kopano-server/internal/reconfiguring boolean true
kopano kopano-server/internal/skip-preseed boolean false
kopano kopano-server/dbconfig-upgrade boolean true
kopano kopano-server/dbconfig-install boolean true
kopano kopano-server/dbconfig-reinstall boolean true
kopano kopano-server/db/app-user string kopano-server
kopano kopano-server/mysql/admin-user string root
kopano kopano-server/database-type select mysql
kopano kopano-server/db/dbname string kopanoserver
EOF
echo "# Setting up database configuration... done.                          #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Installing MariaDB server package...                                #"
apt-get -y install mariadb-server || exit 77
echo "# Installing MariaDB server package... done.                          #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Restart MariaDB server...                                           #"
/etc/init.d/mysql start
echo "# Restart MariaDB server... done.                                     #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Installing kopano-server and kopano-utils...                        #"
apt-get -y install kopano-server kopano-utils
echo "# Installing kopano-server and kopano-utils... done.                  #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# (Re)start the kopano-server...                                      #"
/etc/init.d/kopano-server restart
echo "# (Re)start the kopano-server... done.                                #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Check that we have a running server...                              #"
kopano-admin -l | grep -qs "SYSTEM"
echo "# Check that we have a running server... done.                        #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Check we can create users...                                        #"
kopano-admin -c testadmin -p r00tme \
             -e admin@example.com \
             -f "Your admin" -a 1 | grep -qs "User created."
echo "# Check we can create users... done.                                  #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Check that we find a user 'testadmin' within the server...          #"
kopano-admin --details testadmin
echo "# Check that we find a user 'testadmin' within the server... done     #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Check that we can create a public store...                          #"
kopano-storeadm -P
echo "# Check that we can create a public store... done.                    #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Check that we can deliver...                                        #"
apt-get -y install kopano-dagent
cat <<EOF | kopano-dagent -n -v testadmin
From: hwm@example.com
To: testadmin@example.com
Subject: the towers
EOF
echo "# Check that we can deliver... done.                                  #"
echo "#######################################################################"
echo

echo "#######################################################################"
echo "# Checking that we can backup and retrieve email...                   #"
apt-get -y install kopano-backup
cd debian/tests
export AUTH_USER='testadmin'
export AUTH_PASS='r00tme'
nosetests3 -v
echo "# Checking that we can backup and retrieve email... done.             #"
echo "#######################################################################"

echo " ---> Smoke test of kopano-server successful! <--- "
exit 0
