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

USE_PROCD=1
START=99
STOP=10

CONF_FILE="natpierce"
PROG_BIN="/usr/share/natpierce/natpierce"
PROG_NAME="natpierce"

get_config() {
    config_get_bool enabled "$1" enabled 0
    config_get port "$1" port 33272
}

start_service() {
    if [ ! -x "$PROG_BIN" ]; then
        return 1
    fi

    config_load "$CONF_FILE"

    config_foreach get_config "$CONF_FILE"

    [ "x$enabled" = "x1" ] || return 1
    
    procd_open_instance
    procd_set_param command "$PROG_BIN"
    procd_append_param command -p "$port"
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param respawn
    procd_close_instance
}

stop_service() {
    local pid=$(pgrep -f "$PROG_BIN")

    [ -z "$pid" ] && return
    kill "$pid"

    local i=0
    while [ "$i" -lt 5 ]; do
        pgrep -f "$PROG_BIN" >/dev/null && sleep 1 || break
        i=$((i+1))
    done

    if pgrep -f "$PROG_BIN" >/dev/null; then
        kill -9 "$pid"
    fi
}

service_triggers() {
    procd_add_reload_trigger "$CONF_FILE"
}
