op-packages/totd/root/etc/init.d/totd
github-actions[bot] 32600acc60 🌴 Sync 2026-03-05 23:51:42
2026-03-05 23:51:42 +08:00

68 lines
1.4 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=85
STOP=30
USE_PROCD=1
PROG=/usr/bin/totd
validate_totd_section(){
uci_validate_section totd totd "${1}" \
'forwarder:list(string)' \
'prefix:list(ipaddr)' \
'port:uinteger' \
'interface:list(string)' \
'lookup:string' \
'stf_enable:bool'
}
totd(){
config_load 'totd'
local forwarder prefix port interface lookup stf_enable
validate_totd_section "$1" || {
logger -t "totd" "validation failed"
return 1
}
test -d /var/etc/ || mkdir -p /var/etc
{
[ -n "$forwarder" ] && {
for fa in $forwarder; do
echo "$fa" | awk -F [#] '{print "forwarder "$1" port "$2}'
done
}
[ -n "$prefix" ] && {
for pr in $prefix; do
echo "prefix $pr"
done
}
[ -n "$port" ] && echo "port $port"
[ -n "$interface" ] && echo "interfaces $interface"
[ -n "$lookup" ] && echo "$lookup reverse lookup"
[ -n "$stf_enable" -a "$stf_enable" = "1" ] && echo "stf"
} > /var/etc/totd.conf
procd_open_instance
procd_append_param command $PROG -c /var/etc/totd.conf
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
start_service(){
config_load 'totd'
config_foreach totd "totd"
}
stop_service(){
kill `pgrep -f $PROG` > /dev/null 2>&1
}
reload_service() {
restart
}
service_triggers() {
procd_add_reload_trigger "totd"
}