#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          sm-archive
# Required-Start:    $syslog $local_fs $remote_fs
# Required-Stop:     $syslog $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: archiving milter
# Description:       Adds recipients to messages.
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/sm-archive
PIDFILE=/var/run/sm-archive.pid

[ -x $DAEMON -a -e /etc/sm-archive.conf ] || exit 0

. /lib/lsb/init-functions

DEBUG='-d 1'
SOCKET='inet:31950@localhost'

if [ -x /usr/sbin/postfix ]; then
  #SOCKETDIR='/var/spool/postfix/sm-archive'
  SOCKETOWNER="postfix:"
fi

if [ -r /etc/default/sm-archive ]; then
  . /etc/default/sm-archive
fi

case "$SOCKET" in
/*) SOCKET="local:$SOCKET"; SOCKETDIR="${SOCKET%/*}" ;;
local:*) SOCKETDIR="${SOCKET%/*}"; SOCKETDIR="${SOCKETDIR#local:}" ;;
esac

if [ "$SOCKETDIR" -a ! -d "$SOCKETDIR" ]; then
  mkdir -p $SOCKETDIR
  chown sm-archive: $SOCKETDIR
  if [ "$SOCKETOWNER" ]; then chown $SOCKETOWNER $SOCKET; fi
fi

OPTIONS="$DEBUG -p $SOCKET"

case "$1" in
    start)
	log_daemon_msg "Starting archiver milter" "sm-archive"
	start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE \
	    --exec $DAEMON -- $OPTIONS
	log_end_msg 0
	;;
    stop)
	log_daemon_msg "Stopping archiver milter" "sm-archive"
	start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
	log_end_msg 0
	;;
    restart|force-reload)
	log_daemon_msg "Restarting archiver milter" "sm-archive"
	start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
	sleep 1
	start-stop-daemon --start --quiet --pidfile $PIDFILE \
	    --exec $DAEMON -- $OPTIONS
	log_end_msg 0
	;;
    status)
	status_of_proc -p $PIDFILE $DAEMON sm-archive && exit 0 || exit $?
	;;
    *)
	echo "Usage: /etc/init.d/sm-archive {start|stop|force-reload|restart|status}"
	exit 2
	;;
esac

exit 0
