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