#!/bin/bash

### BEGIN INIT INFO
# Provides:          plesk-milter
# Required-Start:    $syslog $local_fs $network mail-transport-agent
# Required-Stop:     $syslog $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start and stop Plesk milter filter
# Description:       Plesk milter filter handle mail processing
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

exec="/usr/lib/plesk-9.0/psa-pc-remote"
desc="Plesk milter filter"
user="postfix"
group="popuser"
prog="psa-pc-remote"
pidfile="/run/psa-pc-remote.pid"

# Gracefully exit if the package has been removed.
test -x $exec || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$prog ] && . /etc/default/$prog

. /lib/lsb/init-functions
case "${1:-}" in
	start)
		log_daemon_msg "Starting $desc " $prog
		if start-stop-daemon --start --exec "$exec" --oknodo -q -- -p inet:${pc_milter_port:-12768}@${pc_milter_bind_addr:-127.0.0.1} ${pc_milter_timeout+ -t $pc_milter_timeout} ${pc_milter_pop_before_smtp+ -b} ${shortnames+ -s} -P ${pidfile} -u $user -g $group; then
			log_end_msg 0
		else
			log_end_msg 1
		fi
	;;
	stop)
		log_daemon_msg "Stopping $desc " $prog
		start-stop-daemon --stop --pidfile "$pidfile" --oknodo -q --retry 5
		res=$?
		[ "$res" -ne 0 ] || rm -f "$pidfile"

		if [ "$res" -eq 0 ]; then
			log_end_msg 0
		else
			log_end_msg 1
		fi
	;;
	reload|force-reload|restart)
		$0 stop
		$0 start
	;;
	status)
		if type status_of_proc >/dev/null 2>&1; then
			status_of_proc $exec
			exit $?
		else
			pidofproc $exec >/dev/null
			status=$?
			if [ $status -eq 0 ]; then
				log_success_msg "$desc is running"
			else
				log_failure_msg "$desc is not running"
			fi
			exit $status
		fi
	;;
	*)
		log_success_msg "Usage: $0 {start|stop|force-reload|restart|status}"
		exit 1
	;;
esac
