#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
DESC='spam checking proxy daemon'
NAME='spampd'
PROGRAM=/usr/sbin/spampd
#EXECUTABLE=`head -n 1 $PROGRAM | sed -e 's,^#![ 	]*/,/,;s,[ 	].*$,,'`
EXECUTABLE=/usr/bin/perl
PIDFILE=/var/run/spampd.pid

if [ -f $PIDFILE ]; then
	# If can't delete pidfile, this means process is running ...
	rm $PIDFILE || exit 0
fi

. /lib/lsb/init-functions

# set some important defaults (overridable via /etc/default/spampd)
USERID=spampd
GRPID=spampd

if [ -f /etc/default/$NAME ]; then
	. /etc/default/$NAME
fi

istrue () {
    ANS=$(echo $1 | tr A-Z a-z)
    [ "$ANS" = 'yes' -o "$ANS" = 'true' -o "$ANS" = 'enable' -o "$ANS" = '1' ]
}

#
# find out wether to start spampd or not
#
istrue ${STARTSPAMPD} && STARTSPAMPD='true'

#
# Check wether the program is actually there
#
# return 5 as demanded by LSB 2.1 when program isn't installed.
[  -x $PROGRAM ] || exit 5

#
# Calculate final commandline
#
S_TAGALL=''
S_AWL=''
S_LOCALONLY=''

istrue "$TAGALL" \
&& S_TAGALL='--tagall'

istrue "$AUTOWHITELIST" \
&& S_AWL='--auto-whitelist'

istrue "$LOCALONLY" \
&& S_LOCALONLY='--L'

istrue "$LOGINET" \
&& LOGTARGET="inet" \
|| LOGTARGET="unix"

ARGS="${S_LOCALONLY} ${S_AWL} ${S_TAGALL} "

[ -n "${LISTENPORT}" ] && ARGS="${ARGS} --port=${LISTENPORT}"

[ -n "${LISTENHOST}" ] && ARGS="${ARGS} --host=${LISTENHOST}"

[ -n "${DESTPORT}" ] && ARGS="${ARGS} --relayport=${DESTPORT}"

[ -n "${DESTHOST}" ] && ARGS="${ARGS} --relayhost=${DESTHOST}"

[ -n "${PIDFILE}" ] && ARGS="${ARGS} --pid=${PIDFILE}"

[ -n "${CHILDREN}" ] && ARGS="${ARGS} --children=${CHILDREN}"

[ -n "${USERID}" ] && ARGS="${ARGS} --user=${USERID}"

[ -n "${GRPID}" ] && ARGS="${ARGS} --group=${GRPID}"

[ -n "${LOGTARGET}" ] && ARGS="${ARGS} --logsock=${LOGTARGET}"

[ -n "${ADDOPTS}" ] && ARGS="${ARGS} ${ADDOPTS}"

# Don't daemonize
ARGS="${ARGS} --nodetach"

if ! istrue "${STARTSPAMPD}"; then
	log_warning_msg "Starting $DESC: $NAME (disabled in /etc/default/$NAME)."
	# LSB 2.1: 6 mean unconfigured. This seems appropriate here.
	exit 6
fi
log_daemon_msg "Starting $DESC" "$NAME"
# if spampd is not installed, return 5 as demanded by LSB 2.1
if [ ! -x $EXECUTABLE ]; then
	log_error_msg "failed! - executable not found"
	exit 5
fi
# start daemon
exec $PROGRAM $ARGS