#!/bin/sh /etc/rc.common
# netspeedtest init script

START=95
STOP=15
USE_PROCD=1

PATH=/usr/bin:/bin:/usr/sbin:/sbin

start_service() {
    
    START_IPERF3=$(uci get netspeedtest.config.iperf3_enabled 2>/dev/null || echo "0")
    START_HOMEBOX=$(uci get netspeedtest.config.homebox_enabled 2>/dev/null || echo "0")
    
    [ "$START_HOMEBOX" = "1" ] || return 0 
    port=$(uci get netspeedtest.config.homebox_port 2>/dev/null || echo "3300")


    procd_open_instance
    procd_set_param command /usr/bin/homebox serve --port "$port"
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param respawn
    procd_close_instance
}

stop_service() {
    logger -t netspeedtest "Stopping homebox"
    
    ubus call service delete '{ "name": "netspeedtest" }' 2>/dev/null
    
    killall homebox 2>/dev/null || true

    local retries=5
    while pidof homebox >/dev/null 2>&1 && [ $retries -gt 0 ]; do
        sleep 0.2
        retries=$((retries-1))
    done
}

service_triggers() {
    procd_add_reload_trigger "netspeedtest"
}

reload_service() {
    stop
    start
}

status() {

    START_HOMEBOX=$(uci get netspeedtest.config.homebox_enabled 2>/dev/null || echo "0")
    
    if [ "$START_HOMEBOX" != "1" ]; then
        return 3
    fi

    _procd_status
}

boot() {
    sleep 2
    start
}
