#!/bin/sh

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
  start)
    echo -n "Starting qmail: qmail-send"
    supervise /var/supervise/qmail/send /var/qmail/rc |
        setuser qmaill cyclog /var/log/qmail &

    echo -n " qmail-smtpd"
    supervise /var/supervise/qmail/smtpd tcpserver -v -x/etc/tcp.smtp.cdb \
        -u$QMAILDUID -g$NOFILESGID 0 smtp \
        /var/qmail/bin/qmail-smtpd-wrapper 2>&1 | setuser qmaill accustamp | \
        setuser qmaill cyclog /var/log/qmail/smtpd &

    echo "."
    ;;
  stop)
    echo -n "Stopping qmail: qmail-smtpd"
    svc -dx /var/supervise/qmail/smtpd
    echo -n " qmail-send"
    svc -dx /var/supervise/qmail/send
    echo "."
    ;;
  stat)
    echo "Checking qmail-send"
    svstat /var/supervise/qmail/send
    echo "Checking qmail-smtpd"
    svstat /var/supervise/qmail/smtpd
    echo "Checking queue"
    qmail-qstat
    ;;
  doqueue|alrm)
    echo "Sending ALRM signal to qmail-send."
    svc -a /var/supervise/qmail/send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /var/supervise/qmail/send
    ;;
  pause)
    echo "Pausing qmail-send"
    svc -p /var/supervise/qmail/send
    echo "Pausing qmail-smtpd"
    svc -p /var/supervise/qmail/smtpd
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /var/supervise/qmail/send
    echo "Continuing qmail-smtpd"
    svc -c /var/supervise/qmail/smtpd
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /var/supervise/qmail/smtpd
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /var/supervise/qmail/send
    echo "* Restarting qmail-smtpd."
    svc -u /var/supervise/qmail/smtpd
    ;;
  cdb)
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    chmod 644 /etc/tcp.smtp*
    echo "Reloaded /etc/tcp.smtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
   stat -- displays status of mail service
    cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
 reload -- sends qmail-send HUP, rereading locals and virtualdomains
  queue -- shows status of queue
   alrm -- same as doqueue
    hup -- same as reload
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue|help}"
    exit 1
    ;;
esac

exit 0
