#!/bin/sh /etc/rc.common
# Copyright (C) 2023 Tianling Shen <cnsztl@immortalwrt.org>

USE_PROCD=1
START=99

CONF="daed"
PROG="/usr/bin/daed"
LOG="/var/log/daed/daed.log"

start_service() {
	config_load "$CONF"

	local enabled
	config_get_bool enabled "config" "enabled" "0"
	[ "$enabled" -eq "1" ] || return 1

	local listen_addr log_maxbackups log_maxsize
	config_get listen_addr "config" "listen_addr" "0.0.0.0:2023"
	config_get log_maxbackups "config" "log_maxbackups" "1"
	config_get log_maxsize "config" "log_maxsize" "5"

	procd_open_instance "$CONF"
	procd_set_param command "$PROG" run
	procd_append_param command --config "/etc/daed/"
	procd_append_param command --listen "$listen_addr"
	procd_append_param command --logfile "$LOG"
	procd_append_param command --logfile-maxbackups "$log_maxbackups"
	procd_append_param command --logfile-maxsize "$log_maxsize"

	procd_set_param limits core="unlimited"
	procd_set_param limits nofile="1000000 1000000"
	procd_set_param respawn
	# procd_set_param stdout 1
	procd_set_param stderr 1

	procd_close_instance
}

stop_service() {
	rm -f "$LOG"
}

service_triggers() {
	procd_add_reload_trigger "$CONF"
}
