#!/bin/sh

# PROVIDE: kresd
# REQUIRE: NETWORKING
# BEFORE: SERVERS
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable knot-resolver:
#
# kresd_enable="YES":	Set to YES to enable kresd.
#			Set to NO by default.
# kresd_config="":	Set to /usr/local/etc/knot-resolver/kresd.conf
#			by default.
#

. /etc/rc.subr

name=kresd
rcvar=kresd_enable

load_rc_config ${name}

# set defaults
kresd_enable=${kresd_enable:-"NO"}
kresd_config=${kresd_config:-"/usr/local/etc/knot-resolver/${name}.conf"}
kresd_user="kresd"
kresd_group="kresd"
kresd_rundir="/var/run/${name}"

pidfile="${kresd_rundir}/${name}.pid"
procname="/usr/local/sbin/${name}"
required_files="${kresd_config}"

start_cmd="${name}_start"
stop_cmd="${name}_stop"

command="/usr/sbin/daemon"
command_args="-c -f -S -r -P ${pidfile} -T ${name} -- ${procname} -c ${kresd_config} -n -q ${kresd_rundir}"

kresd_start() {
	if [ ! -d /var/run/${name} ]; then
		install -d -o ${kresd_user} -g ${kresd_group} -m 700 ${kresd_rundir}
	fi
	if [ ! -f "${pidfile}" ]; then
		echo "starting ${name}..." && \
		${command} ${command_args}
		echo -e "\e[1A\e[K${name} started."
	else
		echo "${name} already seems to be running."
	fi
	}

kresd_stop() {
	if [ -f "${pidfile}" ]; then
		echo "stopping ${name}..." && \
		for pid in `ps waux | grep ${procname} | grep daemon | awk '{print $2}'`; do \
			kill -TERM $pid
		done
		echo -e "\e[1A\e[K${name} stopped."
	else
		echo "${name} seems to be not running."
	fi
	}

run_rc_command "$1"
