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

START=99
USE_PROCD=1

PROG=/usr/sbin/linkease
LOCAL_API=/var/run/linkease.sock

get_config() {
	config_get_bool enabled "$1" enabled 1
	config_get_bool logger "$1" logger 0
	config_get_bool allowPublic "$1" allowPublic 0
	config_get port "$1" port 8897
}

linkeasefull_enabled() {
	[ "$(uci -q get linkeasefull.@linkeasefull[0].enabled 2>/dev/null)" = "1" ]
}

start_service() {
	config_load linkease
	config_foreach get_config linkease
	[ "$enabled" != "1" ] && return 1
	[ -x "$PROG" ] || return 1
	if linkeasefull_enabled; then
		echo "linkease: linkeasefull is enabled; please disable linkeasefull before starting linkease" >&2
		return 1
	fi
	rm -f "$LOCAL_API"

	procd_open_instance
	procd_set_param limits nofile="65535 65535"
	procd_set_param command "$PROG"
	procd_append_param command --deviceAddr ":$port" --localApi "$LOCAL_API"
	[ "$allowPublic" = "1" ] && procd_append_param command --allowPublic
	[ "$logger" = "1" ] && procd_set_param stderr 1
	procd_set_param respawn
	procd_close_instance
}

service_triggers() {
	procd_add_reload_trigger "linkease"
}
