#! /bin/sh
#
#               Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#               Modified by Davide Libenzi <davidel@xmailserver.org>.
#               Modified by Radu Spineanu <radu@timisoara.roedu.net>.

### BEGIN INIT INFO
# Provides:          xmail mail-transport-agent pop3-server finger-server
# Required-Start:    $local_fs $remote_fs $syslog $network $time
# Required-Stop:     $local_fs $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: ESMTP/POP3 mail server
### END INIT INFO


XMAIL_ROOT=/var/lib/xmail
XMAIL_CMD_LINE=`cat /etc/xmail/cmd_line`
PATH=$XMAIL_ROOT/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=$XMAIL_ROOT/bin/XMail
NAME=XMail
DESC="XMail server"

if [ -f /etc/xmail/default_domain ]; then
	DEFAULT_DOMAIN=`cat /etc/xmail/default_domain`
fi


test -f $DAEMON || exit 0

set -e

# create message.id file if not exists
check_msgid()
{
 if [ ! -f /var/lib/xmail/message.id ] ; then
   echo -e '1\r\n\0' > /var/lib/xmail/message.id
 fi
}

start_xmail()
{
    MAIL_ROOT=$XMAIL_ROOT
	export MAIL_ROOT
    MAIL_CMD_LINE=$XMAIL_CMD_LINE
	export MAIL_CMD_LINE
    export DEFAULT_DOMAIN
    
    check_msgid
    start-stop-daemon --start --exec $DAEMON 
    while [ ! -f /var/run/$NAME.pid ]
    do
        sleep 1
    done
}


stop_xmail()
{
      start-stop-daemon --stop --pid /var/run/$NAME.pid --retry 120 --name $NAME --oknodo --signal 2 --quiet
}


case "$1" in
  start)
      echo -n "Starting $DESC: "
      start_xmail
      #echo "$NAME. [" `cat /var/run/$NAME.pid` "]"
      echo "$NAME."
	;;
  stop)
      echo -n "Stopping $DESC: "
      stop_xmail
      echo "$NAME."
	;;
  restart|force-reload)
	echo -n "Restarting $DESC: "
	stop_xmail
	sleep 1
	start_xmail
        echo "$NAME."
	;;
  *)
	N=/etc/init.d/xmail
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
