small-packages/luci-app-npc/root/etc/init.d/npc
2026-05-10 09:48:30 +08:00

70 lines
1.6 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=95
USE_PROCD=1
LOGGER="logger -t [NPC]"
npc_Path="$(command -v npc)"
start_service() {
if [ -f /usr/local/bin/npc ] ; then
${LOGGER} "Moving npc to /usr/bin ..."
mv -f /usr/local/bin/npc /usr/bin/npc
fi
if [ -f /usr/local/bin/npc-update ] ; then
${LOGGER} "Moving npc-update to /usr/bin ..."
mv -f /usr/local/bin/npc-update /usr/bin/npc-update
fi
local basic_list="enable server_addr protocol vkey dns extra_args"
for i in $(echo $basic_list);do
local eval $i="$(uci_get_by_type npc 0 $i)"
done;unset i
if [ "$enable" != "1" ]; then
${LOGGER} "NPS Client(NPC) is disabled"
return
fi
${LOGGER} "Starting NPS Client(NPC) ..."
cmd_args=""
if ! printf '%s\n' "$extra_args" | grep -q -- '\-server='; then
cmd_args="$cmd_args -server=${server_addr}"
fi
if ! printf '%s\n' "$extra_args" | grep -q -- '\-vkey='; then
cmd_args="$cmd_args -vkey=${vkey}"
fi
if ! printf '%s\n' "$extra_args" | grep -q -- '\-type='; then
cmd_args="$cmd_args -type=${protocol}"
fi
if ! printf '%s\n' "$extra_args" | grep -q -- '\-dns_server='; then
cmd_args="$cmd_args -dns_server=${dns}"
fi
[ -n "$extra_args" ] && cmd_args="$cmd_args $extra_args"
if ! printf '%s\n' "$cmd_args" | grep -q -- '\-log='; then
cmd_args="$cmd_args -log=off"
fi
procd_open_instance
procd_set_param command $npc_Path $cmd_args
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
${LOGGER} "Stopping NPS Client(NPC) ..."
}
service_triggers() {
procd_add_reload_trigger "npc"
}
uci_get_by_type() {
local ret=$(uci get npc.@$1[$2].$3 2>/dev/null)
echo ${ret:=$4}
}