#!/bin/sh /etc/rc.common
# NexusGate 控制面 procd 服务（OpenWrt）
# 由 scripts/install.sh 安装到 /etc/init.d/nexusgate

USE_PROCD=1
START=99
STOP=10

ENV_FILE=/etc/nexusgate.env
APP_DIR=/opt/nexusgate

start_service() {
	[ -f "$ENV_FILE" ] || return 1
	[ -x /usr/bin/node ] || return 1
	[ -f "$APP_DIR/server.js" ] || return 1
	procd_open_instance nexusgate
	procd_set_param command /usr/bin/node --max-old-space-size=128 --optimize-for-size "$APP_DIR/server.js"
	# 注意：procd 的 env 参数不支持多次调用累加（后一次覆盖前一次），必须把所有变量攒到一次调用里
	set --
	while IFS= read -r line || [ -n "$line" ]; do
		case "$line" in
			''|\#*) continue ;;
			*=*) set -- "$@" "$line" ;;
		esac
	done < "$ENV_FILE"
	[ $# -gt 0 ] && procd_set_param env "$@"
	procd_set_param respawn 3600 5 5
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

stop_service() {
	return 0
}
