#!/bin/sh /etc/rc.common
# balancerlite init script for OpenWrt procd
# Install: install -m 0755 etc/init.d/balancerlite /etc/init.d/balancerlite
#          /etc/init.d/balancerlite enable

START=90
STOP=10
USE_PROCD=1
NAME=balancerlite
PROG=/usr/bin/balancerlite

start_service() {
    procd_open_instance
    procd_set_param command "$PROG" --config /etc/config/balancerlite
    procd_set_param respawn 3600 5 3   # retry every 5s, max 3 retries
    procd_set_param stdout 1            # log stdout to syslog
    procd_set_param stderr 1            # log stderr to syslog
    # Readiness: procd sends SIGUSR1; daemon does not currently implement
    # sd_notify, so we use a simple health check instead.
    procd_set_param health_eval 'ubus call network.interface.wan status'
    procd_close_instance
}

reload_service() {
    procd_send_signal "$NAME" SIGHUP
}

stop_service() {
    procd_send_signal "$NAME" SIGTERM
    sleep 2
}

validate_service() {
    # Basic config sanity check
    [ -f /etc/config/balancerlite ] || return 1
}
