#! /bin/bash -e

prefix="/usr"
exec_prefix=${prefix}
sysconfdir="/etc/courier"
bindir="${exec_prefix}/bin"
sbindir="${exec_prefix}/sbin"
libexecdir="${prefix}/lib/courier"
TCPD="${sbindir}/couriertcpd"
DAEMON="imapd"
PROGRAM="Courier IMAP server"
SSLCONFIG=

# first of all check if daemon is available
if ! [ -x "${bindir}/imapd" ]; then
	exit 0
fi

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

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

# read/set defaults
if [ -f /etc/default/courier ]; then
	. /etc/default/courier
fi
if [ -z "$MAILDIR" ]; then
	MAILDIR=Maildir
fi

if [ -f "${sysconfdir}/imapd-ssl" ]; then
	. "${sysconfdir}/imapd-ssl"
	SSLCONFIG=1
fi
. ${sysconfdir}/$DAEMON

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

case "$1" in
start)
  if [ "$START" = "yes" ]; then
    echo -n "Starting $PROGRAM:"

	umask $IMAP_UMASK
    ulimit -v $IMAP_ULIMITD
    /usr/bin/env - /bin/sh -c " set -a; \
		bindir=${bindir}; \
		. ${sysconfdir}/imapd; \
		if [ "$SSLCONFIG" ]; then . ${sysconfdir}/imapd-ssl; fi; \
		IMAP_STARTTLS=$IMAPDSTARTTLS ; export IMAP_STARTTLS ; \
		PROXY_HOSTNAME=$PROXY_HOSTNAME; 
		TLS_PROTOCOL=$TLS_STARTTLS_PROTOCOL ; \
		/usr/sbin/courierlogger -pid=$PIDFILE -start $LOGGEROPTS \
		$TCPD -address=$ADDRESS \
			-maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
			$TCPDOPTS \
			$PORT ${libexecdir}/courier/imaplogin \
				${bindir}/imapd $MAILDIR"
    echo " $DAEMON."
  fi
	;;
stop)
  echo -n "Stopping $PROGRAM:"
  /usr/sbin/courierlogger -pid=$PIDFILE -stop
  echo " $DAEMON."
	;;
restart | reload | force-reload)
  $0 stop
  $0 start
	;;
*)
  echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
  exit 1
  ;;
esac
exit 0
