#!/bin/sh

# PROVIDE: ufdbguardd
# REQUIRE: LOGIN
# KEYWORD: shutdown
#

# You can activate this daemon and set its options in any of the following files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/ufdbguardd
# /etc/rc.conf.d/ufdbguardd/${anyfile}
# ${local_startup}/rc.conf.d/ufdbguardd
# ${local_startup}/rc.conf.d/ufdbguardd/${anyfile}
#
# Note: ${local_startup} is usually /usr/local/etc
#
# Variables you can define in one of these files:
# ufdbguardd_enable (str):	Activates the daemon.
#				Default: NO
# ufdbguardd_flags (str):	Additional flags passed to the daemon as cmd args.
#				Default: none
# ufdbguardd_conf (str):	The configuration file that ufdbguardd should use.
#				Default: %%ETCDIR%%/ufdbGuard.conf
# ufdbguardd_user (str):	The user that should be used to run the ufdbguardd.
#				Default: %%USERS%%
# ufdbguardd_dbdir (str):	The dir where ufdbguardd gets URL filter databases.
#				Default: %%DBDIR%%

. /etc/rc.subr

name=ufdbguardd
rcvar=ufdbguardd_enable

command="%%PREFIX%%/bin/${name}"

extra_commands="configtest monitor reload rotatelog"
configtest_cmd=ufdbguardd_configtest
rotatelog_cmd=ufdbguardd_rotatelog
monitor_cmd=ufdbguardd_monitor
reload_precmd=ufdbguardd_configtest
restart_precmd=ufdbguardd_configtest
start_precmd=ufdbguardd_prestart

ufdbguardd_load_rc_config()
{
	: ${ufdbguardd_dbdir:=%%DBDIR%%}
	: ${ufdbguardd_conf:=%%ETCDIR%%/ufdbGuard.conf}
	: ${ufdbguardd_enable:=NO}
	: ${ufdbguardd_user:=%%USERS%%}

	required_dirs="$ufdbguardd_dbdir %%RUNDIR%%"
	required_files="$ufdbguardd_conf"
	pidfile="%%RUNDIR%%/${name}.pid"
	command_args="-c $ufdbguardd_conf -U $ufdbguardd_user"
}

ufdbguardd_configtest()
{
	echo "Performing sanity check on $name configuration."
	if $command $command_args -C verify; then
	echo "Configuration for $name passes."
		return 0
	else
		return $?
	fi
}

ufdbguardd_prestart()
{
	ufdbguardd_configtest
}

ufdbguardd_rotatelog()
{
	echo "Rotating $name logfiles."
	sig_reload=USR1
	unset reload_precmd
	run_rc_command "reload"
}

ufdbguardd_monitor()
{
	echo "Invoking monitor command for $name."
	sig_reload=USR2
	unset reload_precmd
	run_rc_command "reload"
}

load_rc_config $name
ufdbguardd_load_rc_config
run_rc_command "$1"
