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

START=93
USE_PROCD=1

get_config() {
	config_get_bool enabled "$1" enabled 0
	config_get data_dir "$1" data_dir ""
	config_get host "$1" host "0.0.0.0"
	config_get port "$1" port "9000"
}

start_service() {
	config_load agentflow
	config_foreach get_config agentflow
	[ "$enabled" = 1 ] || return 1

	[ -x /usr/sbin/agentflow ] || {
		logger -t agentflow "missing executable: /usr/sbin/agentflow"
		return 1
	}
	[ -r /lib/functions/mise.sh ] || {
		logger -t agentflow "missing mise environment helper"
		return 1
	}
	. /lib/functions/mise.sh
	if ! istore_runtime_env; then
		logger -t agentflow "failed to initialize mise environment"
		return 1
	fi
	mkdir -p "$data_dir" "$data_dir/data" || return 1

	logger -t agentflow "starting AgentFlow on $host:$port"
	procd_open_instance
	procd_set_param command /usr/sbin/agentflow
	procd_set_param env \
		"AGENT_FLOW_DATA=$data_dir/data" \
		"AGENT_FLOW_HOST=$host" \
		"AGENT_FLOW_PORT=$port" \
		"HOME=$HOME" \
		"PATH=$PATH"
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_set_param respawn
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger "agentflow"
}
