#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          zarafa-server
# Required-Start:    $syslog $network $remote_fs
# Required-Stop:     $syslog $network $remote_fs
# Should-Start:      mysql
# Should-Stop:       mysql
# Default-Start:     2 3 5
# Default-Stop:      0 1 6
# X-UnitedLinux-Default-Enabled:   yes
# Short-Description: Zarafa Collaboration Platform's Storage Server
# Description:       The Zarafa Server takes MAPI calls in SOAP over HTTP(S) or
#                    the unix socket. It authenticates users using one of three
#                    authentication backends (unix/pam, db, ldap). It stores the data
#                    in a MySQL instance, and optionally stores the attachments directly
#                    on the filesystem.
### END INIT INFO

. /etc/rc.status
rc_reset

SERVERCONFIG=/etc/zarafa/server.cfg
SERVERPROGRAM=/usr/sbin/zarafa-server

# Sanity checks.
#[ -f $SERVERCONFIG ] || exit 0
[ -x $SERVERPROGRAM ] || exit 0

SERVERCONFIG_OPT=""
[ ! -z $SERVERCONFIG -a -f $SERVERCONFIG ] && SERVERCONFIG_OPT="-c $SERVERCONFIG"

[ -f /etc/sysconfig/zarafa ] && . /etc/sysconfig/zarafa
export ZARAFA_USERSCRIPT_LOCALE
if [ -z "$ZARAFA_LOCALE" ]; then
	ZARAFA_LOCALE="C"
fi

server=`basename $SERVERPROGRAM`

case "$1" in
    start)
		echo -n "Starting the Zarafa Server "
		install -dm0775 -o zarafa -g zarafa /var/run/zarafad
		export LC_ALL=$ZARAFA_LOCALE
		export LANG=$ZARAFA_LOCALE
		$SERVERPROGRAM $SERVERCONFIG_OPT
		rc_status -v
		unset LC_ALL LANG
		;;

    stop)
		if [ -f /tmp/zarafa-upgrade-lock ]; then
			echo
			echo "Zarafa Server database upgrade is taking place."
			echo "Do not stop this process bacause it may render your database unusable."
			echo
			exit 1
		fi
		echo -n "Stopping Zarafa server "
		killproc $server -TERM
		rc_status -v
		;;

    restart)
		$0 stop
		$0 start
		;;

	reload)
		echo -n "Restarting the Zarafa Server: "
		killproc $server -SIGHUP
		rc_status -v
		;;

    status)
		echo -n "Checking for the Zarafa Server "
		checkproc $server
		rc_status -v
		;;

    *)
		;;
esac

rc_exit
