#!/bin/bash
#

#if [ ! -f /etc/trend-release ]; then
    # IMSS doesn't use this service.
    #exit 0
#fi

. /etc/rc.d/init.d/functions

IMSS_HOME=_PKG_INSTALL_ROOT_
LD_LIBRARY_PATH=$IMSS_HOME/lib/curl:$IMSS_HOME/lib
export IMSS_HOME
export LD_LIBRARY_PATH

prefix=_PKG_INSTALL_ROOT_
exec_prefix=${prefix}

RETVAL=0
prog="dkim"

DAEMON=${exec_prefix}/bin/$prog
CONF_FILE=${prefix}/config/$prog/$prog.conf
PID_FILE=${prefix}/var/run/$prog/$prog.pid
KEYGEN=${prefix}/bin/dkim-genkey
DKIM_KEYDIR=${prefix}/config/$prog/keys
DKIM_SELECTOR=default
AUTOCREATE_DKIM_KEYS=NO
PROCESS_SIG=bin/dkim
BIN_PATH=$IMSS_HOME/bin/dkim
PS_CMD="ps -ef --width 1000"

if [ -f /etc/sysconfig/dkim ]; then
	. /etc/sysconfig/dkim
fi

do_dkim_keygen() {
	if [ ! -s $DKIM_KEYDIR/$DKIM_SELECTOR.private ]; then
		echo -n $"Generating default DKIM keys: "
		if [ "x`hostname --domain`" = "x" ]; then
			echo_warning
			echo
			echo $"Cannot determine host's domain name, so skipping default key generation."
		else
			mkdir -p $DKIM_KEYDIR
			$KEYGEN -D $DKIM_KEYDIR -s $DKIM_SELECTOR -d `hostname --domain`
			chown root:$prog $DKIM_KEYDIR
			chown $prog:$prog $DKIM_KEYDIR/$DKIM_SELECTOR.{private,txt}
			chmod 600 $DKIM_KEYDIR/$DKIM_SELECTOR.private
			chmod 644 $DKIM_KEYDIR/$DKIM_SELECTOR.txt
			echo_success
			echo
	                echo Default DKIM keys for `hostname --domain` created in $DKIM_KEYDIR.
		fi
	fi
}

start() {
	# Create keys if necessary
	if [ "x${AUTOCREATE_DKIM_KEYS}" != xNO ]; then
		do_dkim_keygen
	fi

	echo -n $"Starting DKIM Milter: "
	for i in `$PS_CMD | grep $PROCESS_SIG | grep -v grep | grep -v defunct | awk '{ print $2 }'`
        do
            if test "$i"
            then
                echo "$BIN_PATH is running."
                exit 1
            fi
        done
        daemon $DAEMON -x $CONF_FILE -P $PID_FILE
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dkim
	echo
	return $RETVAL
}

stop() {
	echo -n $"Stopping DKIM Milter: "
	killproc -p $PID_FILE dkim
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dkim
	return $RETVAL
}

restart() {
	stop
	start
}

reload() {
	echo -n $"Reloading DKIM Milter configuration: "
	killproc -p $PID_FILE dkim -SIGUSR1
	RETVAL=$?
	echo
	return $RETVAL
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  reload)
	reload
	;;
  restart)
	restart
	;;
  status)
	status -p $PID_FILE dkim
	;;
  condrestart)
	[ -f /var/lock/subsys/dkim ] && restart || :
	;;
  *)
	echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
	exit 1
esac

exit $?
