#!/bin/bash

# source function library
. /etc/rc.d/init.d/functions

PRODUCT_NAME="XMail Server"
XMAIL_ROOT=/etc/xmail
PATH=$MAIL_ROOT/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
XMAIL_CMD_LINE=""
prog="XMail"
sucessfull_terminated=0
STOP_TIMEOUT=60
RETVAL=0

start() {
	export MAIL_ROOT=$XMAIL_ROOT
	XMAIL_CMD_LINE=`cat /etc/sysconfig/xmail`
	echo "XMail command line " $XMAIL_CMD_LINE
	export MAIL_CMD_LINE=$XMAIL_CMD_LINE
	echo -n $"Starting ${PRODUCT_NAME}: "
	/usr/sbin/XMail && success || failure
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/${prog}
	echo
}

stop() {
	echo -n $"Stopping ${PRODUCT_NAME}: "
	killproc ${prog} 
	RETVAL=$?
	echo
	if [ $RETVAL -eq 0 ]; then
		count=0
		while [ -n "`pidof XMail`" -a $count -lt $STOP_TIMEOUT ] ; do
			sleep 1
			count=`expr $count + 1`
		done
		if [ -n "`pidof XMail`" ] ; then
			echo -n $"Killing ${PRODUCT_NAME}: "
			killproc ${prog} -9
			RETVAL=$?
			echo
		fi
		rm -f /var/lock/subsys/${prog}
	fi
	touch $MAIL_ROOT/.shutdown
}

force-stop() {
	echo -n $"Killing ${PRODUCT_NAME}: "
	killproc ${prog} -9
	sleep 1
	killproc ${prog} -9
	echo
	rm -f /var/lock/subsys/${prog}
}

restart() {
	stop
	start
}

getstatus()
{
	echo -n $"Checking status: "
	status ${prog}
	# killproc ${prog} -USR1
	RETVAL=$?
	echo
}



case "$1" in
start)
	start
	;;

force-stop)
	force-stop
	;;
stop)
	stop
	;;
restart)
	restart
	;;
status)
	getstatus
	;;

condrestart)
	if [ -f /var/lock/subsys/${prog} ]; then
		stop
		start
	fi
	;;
*)
	echo " "
	echo " "
	echo "$PRODUCT_NAME Daemon"
	echo " "
	printf "Usage: %s {start|stop|force-stop|restart|condrestart|status}\n" "$0"
	echo " "
	exit 1
esac
exit $RETVAL

