#!/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"

# 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 --chuid "$user:$group" -- -p inet:${pc_milter_port:-12768}@localhost ${pc_milter_timeout+ -t $pc_milter_timeout} ${pc_milter_pop_before_smtp+ -b}; then
			log_end_msg 0
		else
			log_end_msg 1
		fi
	;;
	stop)
		log_daemon_msg "Stopping $desc " $prog
		if start-stop-daemon --stop --exec $exec --oknodo -q --retry 5; 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
