#!/bin/sh /etc/rc.common

USE_PROCD=1
START=90
STOP=10

PROG="/usr/bin/oxidns"
DEFAULT_CONFIG_PATH="/etc/oxidns/config.yaml"
DEFAULT_WORKING_DIR="/var/lib/oxidns"

load_oxidns_settings() {
	config_load oxidns
	config_get CONFIG_PATH main config_path "$DEFAULT_CONFIG_PATH"
	config_get WORKING_DIR main working_dir "$DEFAULT_WORKING_DIR"
	config_get_bool LOG_SYSLOG main log_syslog 1
}

start_service() {
	load_oxidns_settings

	if [ ! -x "$PROG" ]; then
		echo "oxidns binary not found or not executable: $PROG" >&2
		return 1
	fi
	if [ ! -r "$CONFIG_PATH" ]; then
		echo "oxidns config not found: $CONFIG_PATH" >&2
		return 1
	fi

	mkdir -p "$WORKING_DIR"

	procd_open_instance
	procd_set_param command "$PROG" start -c "$CONFIG_PATH" -d "$WORKING_DIR"
	procd_set_param respawn 3600 5 5
	procd_set_param stdout "$LOG_SYSLOG"
	procd_set_param stderr "$LOG_SYSLOG"
	procd_close_instance
}

reload_service() {
	procd_send_signal oxidns
}

service_triggers() {
	procd_add_reload_trigger oxidns
}
