#!/bin/sh
#
# $FreeBSD: ports/security/pks/files/pksd.in,v 1.2 2012/11/17 06:01:16 svnexp Exp $
#
#
# PROVIDE: pksd
# REQUIRE: DAEMON

. /etc/rc.subr

name="pksd"
rcvar=pksd_enable
command="/usr/local/sbin/pksd"
command_args="/usr/local/etc/${name}.conf &"
required_files="/usr/local/etc/${name}.conf"
start_precmd="pksd_precmd"
start_postcmd="pksd_runqueue"
stop_command="pksd_clean_stop"

pksd_precmd()
{
	if [ ! -f /usr/local/etc/${name}.conf ]
        then
                exit 0
        else
                dbdir=`awk '/db_dir/ { print $2 }' < /usr/local/etc/${name}.conf`
        fi
        if [ ! -f ${dbdir}/keydb000 -a -x /usr/local/bin/pksclient ]
        then
                /usr/local/bin/pksclient ${dbdir} create
	fi
}

pksd_runqueue()
{
	if [ -x /usr/local/bin/${name} -a -x /usr/local/bin/pks-queue-run.sh ]
        then
        	echo "Doing queue run for ${name}."
		sleep 5
        	/usr/local/bin/pks-queue-run.sh /usr/local/etc/${name}.conf
	fi
}

pksd_clean_stop()
{
        if [ ! -f /usr/local/etc/${name}.conf ]
        then
                exit 0
        else
                socket=`awk '/socket_name/ { print $2 }' < /usr/local/etc/${name}.conf`
        fi
        if [ -x /usr/local/bin/${name}ctl -a -S ${socket} ]
        then
                echo "Shutting down ${name} socket connections using pksdctl."
                /usr/local/bin/${name}ctl ${socket} shutdown
        else
                echo "couldn't stop ${name}."
        fi
}


load_rc_config $name
run_rc_command "$1"
