# $NetBSD: silcd.generic,v 1.3 2003/10/16 12:37:44 salo Exp $
#

KILL="/bin/kill"
CAT="/bin/cat"
RM="/bin/rm"

name="silcd"
confdir="@PKG_SYSCONFDIR@"
required_files="$confdir/silcd.conf"
required_dirs="/var/log/silcd"
pidfile="/var/run/${name}.pid"
command="@PREFIX@/sbin/silcd"
start_precmd="silcd_precmd"

silcd_precmd() {       
	if [ ! -f $confdir/silcd.prv ]; then
		umask 7177 && $command -C $confdir
	fi
}

silcd_start() {
	if [ ! -r $required_files ]; then
		echo "$0: WARNING: $required_files is not readable."
		exit 1
	fi
	if [ ! -d $required_dirs ]; then
		echo "$0: WARNING: $required_dirs is not a directory."
		exit 1
	fi

	eval $start_precmd
	return_code=$?
	if [ $return_code != "0" ]; then
		exit 1
	fi

	echo "Starting ${name}."
	eval $command
	return_code=$?
	if [ $return_code != "0" ]; then
		exit 1
	fi
}


silcd_stop() {
	if [ -r $pidfile  -a ! -z $pidfile ]; then
		_pid=`${CAT} ${pidfile}`
	else
		echo "${name} not running?"
	fi
	if [ ${_pid:=0} -gt 1 -a ! "X$_pid" = "X " ]; then
		echo "Stopping ${name}."
		${KILL} ${_pid}
		return_code=$?
		if [ $return_code != "0" ]; then
			exit 1
		fi
	fi
	${RM} -f $pidfile
}

case $1 in

'start')
    silcd_start
    ;;

'stop')
    silcd_stop
    ;;

'restart')
    silcd_stop
    silcd_start
    ;;

*)
    echo "Usage: $0 (start|stop|restart)"
    ;;
esac
