#!/sbin/openrc-run

extra_commands="checkconfig"
extra_started_commands="reload reopen"

description="Rapid spam filtering system"
description_checkconfig="Check configuration"
description_reload="Reload configuration"
description_reopen="Reopen log files"

# Uppercase variables are here for backward compatibility only.
: ${command_user:="${RSPAMD_USER:-rspamd}:${RSPAMD_GROUP:-rspamd}"}
: ${cfgfile:=${RSPAMD_CONFIG:-/etc/rspamd/rspamd.conf}}
: ${startuplog:=${RSPAMD_STARTUPLOG:-/dev/null}}

command="/usr/sbin/rspamd"
command_args="--config $cfgfile --no-fork ${command_args:-}"
command_background="yes"
pidfile="/run/rspamd/$RC_SVCNAME.pid"

required_files="$cfgfile"

depend() {
	need localmount net
	before mta
	after redis
}

start_pre() {
	checkpath -d -m 755 -o "$command_user" ${pidfile%/*}
	checkconfig >/dev/null 2>>"$startuplog" || checkconfig
}

checkconfig() {
	ebegin "Checking $name configuration"

	rspamadm configtest
	eend $?
}

reload() {
	ebegin "Reloading $name configuration"
	start_pre && start-stop-daemon --signal HUP --pidfile $pidfile
	eend $?
}

reopen() {
	ebegin "Reopening $name log files"
	start-stop-daemon --signal USR1 --pidfile $pidfile
	eend $?
}