#!/bin/sh /etc/rc.common
|
|
#
|
|
# Copyright (C) 2019 Mister Benjamin <144dbspl@gmail.com>
|
|
|
|
NAME='etherwake-nfqueue'
|
|
|
|
START=60
|
|
USE_PROCD=1
|
|
|
|
PROGRAM=${NAME}
|
|
|
|
start_service()
|
|
{
|
|
local value
|
|
|
|
config_load ${NAME}
|
|
|
|
config_get_bool value setup sudo 0
|
|
[ "${value}" -ne 0 ] && PROGRAM="sudo ${PROGRAM}"
|
|
|
|
config_get_bool value setup debug 0
|
|
if [ "${value}" -ne 0 ]; then
|
|
PROCD_DEBUG=1
|
|
append PROGRAM '-D'
|
|
fi
|
|
|
|
config_foreach start_instance target
|
|
}
|
|
|
|
start_instance()
|
|
{
|
|
local section="$1"
|
|
local value name mac
|
|
|
|
config_get_bool value "${section}" enabled 1
|
|
[ "${value}" -ne 1 ] && return 0
|
|
|
|
config_get value "${section}" name
|
|
[ -z "${value}" ] && value="{section}"
|
|
name=${value}
|
|
|
|
config_get mac "${section}" mac
|
|
[ -z "${mac}" ] && {
|
|
echo "${initscript}: Target ${name} has no MAC address"
|
|
return 1
|
|
}
|
|
|
|
procd_open_instance ${name}
|
|
procd_set_param command ${PROGRAM}
|
|
procd_set_param respawn
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
|
|
config_get_bool value "${section}" broadcast 0
|
|
[ "${value}" -ne 0 ] && procd_append_param command -b
|
|
|
|
config_get value "${section}" interface
|
|
[ -n "${value}" ] && procd_append_param command -i "${value}"
|
|
|
|
config_get value "${section}" password
|
|
[ -n "${value}" ] && procd_append_param command -p "${value}"
|
|
|
|
config_get value "${section}" nfqueue_num 0
|
|
procd_append_param command -q "${value}"
|
|
|
|
procd_append_param command "${mac}"
|
|
|
|
procd_close_instance
|
|
}
|