#!/bin/bash
### BEGIN INIT INFO
# Provides:          maildisclaimer
# Required-Start:    $local_fs $network $named
# Required-Stop:     
# Should-Start:      
# Should-Stop:       
# X-Start-Before:    postfix
# X-Stop-After:      postfix
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     false
# Short-Description: maildisclaimer Postfix content filter
# Description:       
#
### END INIT INFO

#                 v--v--- see Postfix's "id"
# chkconfig: 345 81 30
# description: maildisclaimer Postfix content_filter
# processname: /usr/sbin/maildisclaimer
# pidfile: /var/run/maildisclaimer.pid

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=maildisclaimer
DESC="maildisclaimer content filter"
SCRIPTNAME=/etc/init.d/$NAME
CONFIG=/etc/default/"$NAME"

CONTENT_FILTER_IP="127.0.0.1"
CONTENT_FILTER_PORT=0
POSTFIX_REDELIVERY_IP="127.0.0.1"
POSTFIX_REDELIVERY_PORT=0
ACCOUNT_BACKEND=ldap
ARGS=""
PIDFILE=/var/run/maildisclaimer.pid
USER=maildisclaimer
GROUP=maildisclaimer

if [ -f $CONFIG ]; then
    source $CONFIG

    [[ -n $CONTENT_FILTER_IP ]] && [[ -n $CONTENT_FILTER_PORT ]] && ARGS="$ARGS --bind=$CONTENT_FILTER_IP:$CONTENT_FILTER_PORT"
    [[ -n $POSTFIX_REDELIVERY_IP ]] && [[ -n $POSTFIX_REDELIVERY_PORT ]] && ARGS="$ARGS --gateway=$POSTFIX_REDELIVERY_IP:$POSTFIX_REDELIVERY_PORT"
    [[ -n $USER ]] && ARGS="$ARGS --user=$USER"
    [[ -n $GROUP ]] && ARGS="$ARGS --group=$GROUP"
    [[ -n $PIDFILE ]] && ARGS="$ARGS --pid-file=$PIDFILE"
    [[ -n $ACCOUNT_BACKEND ]] && ARGS="$ARGS --account-backend=$ACCOUNT_BACKEND"
fi

#
#	Function that starts the daemon/service.
#
d_start() {
	/usr/sbin/maildisclaimer $ARGS start
}

#
#	Function that stops the daemon/service.
#
d_stop() {
	/usr/sbin/maildisclaimer $ARGS stop
}

d_status() {
	/usr/sbin/maildisclaimer $ARGS status
}

case "$1" in
	status)
		echo -n "$DESC: $NAME "
		d_status
		ret=$?
		if [[ $ret -eq 0 ]]; then
			echo "running"
		else
			echo "not running"
		fi
		exit $ret
		;;
	start)
		echo -n "Starting $DESC: $NAME"
		d_start
		echo "."
		;;
	stop)
		echo -n "Stopping $DESC: $NAME"
		d_stop
		echo "."
		;;
	restart|force-reload)
		echo -n "Restarting $DESC: $NAME"
		d_stop
		sleep 1
		d_start
		echo "."
		;;
	*)
		echo "Usage: $SCRIPTNAME {status|start|stop|restart|force-reload}" >&2
		exit 1
		;;
esac

exit 0
