#!/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 }