#! /bin/sh

prefix="/usr"
exec_prefix=${prefix}
sysconfdir="/etc/courier"
sbindir="${exec_prefix}/sbin"
libexecdir="${prefix}/lib/courier"
TCPD=${sbindir}/couriertcpd
DAEMONPROG=${sbindir}/imapd
DAEMON=imapd-ssl
PROGRAM="Courier IMAP-SSL server"

test -f $DAEMONPROG || exit 0

if ! [ -x $TCPD ]; then
  echo "ERR: $TCPD missing"
  exit 1
fi

if ! [ -f ${sysconfdir}/imapd ]; then
  echo "ERR: config file missing"
  exit 1
fi
if ! [ -f ${sysconfdir}/imapd-ssl ]; then
  echo "ERR: config file missing"
  exit 1
fi

. ${sysconfdir}/imapd
. ${sysconfdir}/imapd-ssl

if ! [ -x $COURIERTLS ]; then
  echo "ERR: $COURIERTLS missing"
  exit 1
fi

START=no
case "$IMAPDSSLSTART" in
	[yY]*)START=yes;;
esac

if [ "$START" = "no" ]; then
	exit 0
fi

case "$1" in
start)
    echo -n "Starting $PROGRAM:"
    AUTHMODULELIST=""
    for f in $AUTHMODULES
    do
      if [ -e $libexecdir/authlib/$f ]; then
          AUTHMODULELIST="$AUTHMODULELIST $libexecdir/authlib/$f"
	  fi
    done
    AUTHMODULELIST="`echo $AUTHMODULELIST`"

    ulimit -d $IMAP_ULIMITD
    /usr/bin/env - /bin/sh -c " . /etc/courier/imapd ; \
		. /etc/courier/imapd-ssl ; \
		IMAP_TLS=1 ; export IMAP_TLS ; \
		`sed -n '/^#/d;/=/p' </etc/courier/imapd | \
			sed 's/=.*//;s/^/export /;s/$/;/'`
		`sed -n '/^#/d;/=/p' </etc/courier/imapd-ssl | \
			sed 's/=.*//;s/^/export /;s/$/;/'`
		$TCPD -address=$SSLADDRESS \
			-stderrlogger=${prefix}/sbin/courierlogger \
			-stderrloggername=imapd-ssl \
			-maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
			-pid=$SSLPIDFILE $TCPDOPTS \
			$SSLPORT $COURIERTLS -server -tcpd \
			${prefix}/lib/courier/courier/imaplogin $AUTHMODULELIST \
				/usr/bin/imapd Maildir"
    echo " $DAEMON."
	;;
stop)
  echo -n "Stopping $PROGRAM:"
  $TCPD -pid=$SSLPIDFILE -stop
  echo " $DAEMON."
	;;
restart | reload | force-reload)
  $0 stop
  $0 start
	;;
esac
exit 0
