#!/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" } load_runtime_env() { local conf_dir [ -n "$data_dir" ] || return 1 conf_dir="$(dirname "$data_dir")" export ISTORE_RUNTIME_CONF_DIR="$conf_dir" if [ -r /lib/functions/istore_runtime.sh ]; then . /lib/functions/istore_runtime.sh istore_runtime_export_env return $? fi return 1 } 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 } mkdir -p "$data_dir" "$data_dir/data" || return 1 if ! load_runtime_env; then logger -t agentflow "shared runtime home is not configured" return 1 fi 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" \ "XDG_DATA_HOME=$XDG_DATA_HOME" \ "XDG_CACHE_HOME=$XDG_CACHE_HOME" \ "XDG_CONFIG_HOME=$XDG_CONFIG_HOME" \ "XDG_STATE_HOME=$XDG_STATE_HOME" \ "MISE_DATA_DIR=$MISE_DATA_DIR" \ "MISE_CACHE_DIR=$MISE_CACHE_DIR" \ "MISE_CONFIG_DIR=$MISE_CONFIG_DIR" \ "MISE_STATE_DIR=$MISE_STATE_DIR" \ "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" }