#!/bin/sh
#
# $FreeBSD: ports/mail/courier/files/courier.sh.in,v 1.2 2006/02/20 20:47:07 dougb Exp $
#
# Adapted for FreeBSD from courier.sysvinit
#
# NOTE: The 'restart' here does a "hard" stop, and a start. Be gentle, use
# "courierd restart" for a kindler, gentler, restart.
#
# PROVIDE: mail
# REQUIRE: LOGIN courier_authdaemond
# BEFORE: securelevel
# KEYWORD: shutdown
#
# NOTE for FreeBSD 5.0+:
# If you want this script to start with the base rc scripts
# move courier.sh to /etc/rc.d/courier
prefix="%%PREFIX%%"
exec_prefix="${prefix}"
sysconfdir="${prefix}/etc/courier"
sbindir="${exec_prefix}/sbin"
bindir="${exec_prefix}/bin"
libexecdir="${prefix}/libexec"
datadir="${prefix}/share/courier"
# Define these courier_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/courier
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
#
courier_enable=${courier_enable:-"NO"} # Run Courier-MTA (YES/NO).
. %%RC_SUBR%%
name="courier"
rcvar=`set_rcvar`
start_precmd="${name}_prestart"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
extra_commands="restart"
courier_prestart()
{ # Ensure runtime directories exist with correct permissions
/usr/bin/install -o %%BINOWN%% -g %%BINGRP%% -m 0755 -d %%LOCALSTATEDIR%%
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0750 -d %%LOCALSTATEDIR%%/allfilters
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0700 -d %%LOCALSTATEDIR%%/faxtmp
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0750 -d %%LOCALSTATEDIR%%/filters
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0750 -d %%LOCALSTATEDIR%%/msgq
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0750 -d %%LOCALSTATEDIR%%/msgs
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0770 -d %%LOCALSTATEDIR%%/tmp
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0755 -d %%LOCALSTATEDIR%%/track
/usr/bin/install -o %%MAILOWN%% -g %%MAILGRP%% -m 0400 -c /dev/null %%LOCALSTATEDIR%%/.noident
/usr/bin/install -o %%BINOWN%% -g %%BINGRP%% -m 0755 -d %%CALENDIR%%
/usr/bin/install -o %%CACHEOWN%% -g %%MAILGRP%% -m 0700 -d %%CALENDIR%%/localcache
/usr/bin/install -o %%CACHEOWN%% -g %%MAILGRP%% -m 0750 -d %%CALENDIR%%/private
/usr/bin/install -o %%CACHEOWN%% -g %%MAILGRP%% -m 0755 -d %%CALENDIR%%/public
/usr/bin/install -o %%CACHEOWN%% -g mail -m 0700 -d %%CACHEDIR%%
}
courier_start()
{ # First time after install create aliases.dat and makesmtpaccess.dat
echo -n "Starting"
if [ -f ${sysconfdir}/crontab ]; then
/usr/bin/crontab -u %%CACHEOWN%% ${sysconfdir}/crontab
fi
if [ ! -f ${sysconfdir}/aliases.dat \
-a -x ${sbindir}/makealiases ]; then
${sbindir}/makealiases
fi
esmtpdcert=0
ESMTPDSTART=""
if [ -f ${sysconfdir}/esmtpd ]; then
. ${sysconfdir}/esmtpd
case "$ESMTPDSTART" in
[Yy]*)
esmtpdcert=1
;;
esac
if [ ! -f ${sysconfdir}/esmtpacceptmailfor.dat \
-a -x ${sbindir}/makeacceptmailfor ]; then
${sbindir}/makeacceptmailfor
fi
if [ ! -f ${sysconfdir}/${ACCESSFILE}.dat \
-a -x ${sbindir}/makesmtpaccess ]; then
${sbindir}/makesmtpaccess
fi
fi
ESMTPDSTART=""
if [ -f ${sysconfdir}/esmtpd-msa ]; then
. ${sysconfdir}/esmtpd-msa
case "$ESMTPDSTART" in
[Yy]*)
esmtpdcert=1
;;
esac
if [ ! -f ${sysconfdir}/${ACCESSFILE}.dat \
-a -x ${sbindir}/makesmtpaccess-msa ]; then
${sbindir}/makesmtpaccess-msa
fi
fi
if [ -x ${sbindir}/courierfilter ]; then
echo -n " courierfilter"
${sbindir}/courierfilter start
fi
if [ -x ${sbindir}/courierldapaliasd ]; then
echo -n " courierldapaliasd"
${sbindir}/courierldapaliasd start
fi
if [ -x ${libexecdir}/courier/sqwebmaild \
-a -x ${sbindir}/webmaild ]; then
echo -n " webmail"
${sbindir}/webmaild start
fi
if [ -x ${sbindir}/courier ]; then
echo -n " courierd"
${sbindir}/courier start
fi
if [ "$esmtpdcert" = 1 ]; then
# If we do not have a certificate, make one up.
if [ ! -f ${sysconfdir}/esmtpd.pem \
-a -x "$COURIERTLS" \
-a -x ${sbindir}/mkesmtpdcert ]; then
echo -n " generating-ESMTP-SSL-certificate..."
${sbindir}/mkesmtpdcert >/dev/null 2>&1
fi
fi
ESMTPDSTART=""
if [ -f ${sysconfdir}/esmtpd ]; then
. ${sysconfdir}/esmtpd
case "$ESMTPDSTART" in
[Yy]*)
if [ -x ${sbindir}/esmtpd ]; then
echo -n " esmtpd"
${sbindir}/esmtpd start
fi
;;
esac
fi
ESMTPDSTART=""
if [ -f ${sysconfdir}/esmtpd-msa ]; then
. ${sysconfdir}/esmtpd-msa
case "$ESMTPDSTART" in
[Yy]*)
if [ -x ${sbindir}/esmtpd-msa ]; then
echo -n " esmtpd-msa"
${sbindir}/esmtpd-msa start
fi
;;
esac
fi
ESMTPDSSLSTART=""
if [ -f ${sysconfdir}/esmtpd-ssl ]; then
. ${sysconfdir}/esmtpd-ssl
case "$ESMTPDSSLSTART" in
[Yy]*)
if [ -x "$COURIERTLS" \
-a -x ${sbindir}/esmtpd-ssl ]; then
echo -n " esmtpd-ssl"
${sbindir}/esmtpd-ssl start
fi
;;
esac
fi
IMAPDSTART=""
if [ -f ${sysconfdir}/imapd ]; then
. ${sysconfdir}/imapd
case "$IMAPDSTART" in
[Yy]*)
if [ -x ${sbindir}/imapd ]; then
echo -n " imapd"
${sbindir}/imapd start
fi
;;
esac
fi
IMAPDSSLSTART=""
if [ -f ${sysconfdir}/imapd-ssl ]; then
. ${sysconfdir}/imapd-ssl
case "$IMAPDSSLSTART" in
[Yy]*) # If we do not have a certificate, make one up.
if [ -x "$COURIERTLS" ]; then
if [ ! -f ${sysconfdir}/imapd.pem \
-a -x ${sbindir}/mkimapdcert ]; then
echo -n " generating-IMAP-SSL-certificate..."
${sbindir}/mkimapdcert >/dev/null 2>&1
fi
if [ -x ${sbindir}/imapd-ssl ]; then
echo -n " imapd-ssl"
${sbindir}/imapd-ssl start
fi
fi
;;
esac
fi
POP3DSTART=""
if [ -f ${sysconfdir}/pop3d ]; then
. ${sysconfdir}/pop3d
case "$POP3DSTART" in
[Yy]*)
if [ -x ${sbindir}/pop3d ]; then
echo -n " pop3d"
${sbindir}/pop3d start
fi
;;
esac
fi
POP3DSSLSTART=""
if [ -f ${sysconfdir}/pop3d-ssl ]; then
. ${sysconfdir}/pop3d-ssl
case "$POP3DSSLSTART" in
[Yy]*) # If we do not have a certificate, make one up.
if [ -x "$COURIERTLS" ]; then
if [ ! -f ${sysconfdir}/pop3d.pem \
-a -x ${sbindir}/mkpop3dcert ]; then
echo -n " generating-POP3-SSL-certificate..."
${sbindir}/mkpop3dcert >/dev/null 2>&1
fi
if [ -x ${sbindir}/pop3d-ssl ]; then
echo -n " pop3d-ssl"
${sbindir}/pop3d-ssl start
fi
fi
;;
esac
fi
echo "."
}
courier_stop()
{ # kill courier services in the reverse order of starting them
echo -n "Stopping"
if [ -x ${sbindir}/pop3d-ssl ]; then
echo -n " pop3d-ssl"
${sbindir}/pop3d-ssl stop
fi
if [ -x ${sbindir}/pop3d ]; then
echo -n " pop3d"
${sbindir}/pop3d stop
fi
if [ -x ${sbindir}/imapd-ssl ]; then
echo -n " imapd-ssl"
${sbindir}/imapd-ssl stop
fi
if [ -x ${sbindir}/imapd ]; then
echo -n " imapd"
${sbindir}/imapd stop
fi
if [ -x ${sbindir}/esmtpd-ssl ]; then
echo -n " esmtpd-ssl"
${sbindir}/esmtpd-ssl stop
fi
if [ -x ${sbindir}/esmtpd-msa ]; then
echo -n " esmtpd-msa"
${sbindir}/esmtpd-msa stop
fi
if [ -x ${sbindir}/esmtpd ]; then
echo -n " esmtpd"
${sbindir}/esmtpd stop
fi
if [ -x ${sbindir}/courier ]; then
echo -n " courierd"
${sbindir}/courier stop
fi
if [ -x ${sbindir}/webmaild ]; then
echo -n " webmail"
${sbindir}/webmaild stop
fi
if [ -x ${sbindir}/courierldapaliasd ]; then
echo -n " courierldapaliasd"
${sbindir}/courierldapaliasd stop
fi
if [ -x ${sbindir}/courierfilter ]; then
echo -n " courierfilter"
${sbindir}/courierfilter stop
fi
echo y | /usr/bin/crontab -u %%CACHEOWN%% -r || true
echo "."
}
load_rc_config $name
run_rc_command "$1"
syntax highlighted by Code2HTML, v. 0.9.1