1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2009 OpenWrt.org
16 # check for available program
17 config_get searchlist
'setup' 'pathes'
18 PROGRAM
=$
(search_program
"${searchlist}")
19 [ -z "${PROGRAM}" ] && {
20 echo "${initscript}: No ${NAME} program installed. Check: opkg list | grep ${NAME}"
25 config_get_bool value
'setup' 'sudo' '0'
26 [ "${value}" -ne 0 ] && PROGRAM
="sudo ${PROGRAM}"
29 config_get value
'setup' 'interface'
30 [ -n "${value}" ] && append PROGRAM
"-i ${value}"
33 config_get_bool value
'setup' 'broadcast' '0'
34 [ "${value}" -ne 0 ] && append PROGRAM
'-b'
37 config_foreach etherwake_start target $
*
52 # check if boot target
53 config_get_bool value
"${section}" 'wakeonboot' '0'
54 [ "${value}" -eq 0 ] && return 0
57 do_etherwake
"${section}"
61 config_get value
"${section}" 'name'
62 [ -z "${value}" ] && return 0
64 for target
in ${names}
66 [ "${value}" != "${target}" ] && continue
69 do_etherwake
"${section}"
75 # execute etherwake command for target
84 config_get value
"${section}" 'password'
85 [ -n "${value}" ] && {
86 password
=$
(etherwake_password
"${value}")
87 append args
"-p ${password}"
91 config_get value
"${section}" 'mac'
92 [ -z "${value}" ] && { echo "${initscript}: Target ${section} has no MAC address"; return 1; }
93 append args "${value}"
96 config_get value "${section}" 'name'
97 [ -z "${value}" ] && value="{section
}"
100 echo "${initscript}: Waking up ${value} via ${PROGRAM}${args:+ ${args}}"
106 # find first available program from searchlist
109 local searchlist="$1"
113 for test in ${searchlist} ; do
114 [ -x "${test}" ] && {
120 [ -n "${program}" ] && echo "${program}"
125 # prepare hex password
129 local password=`echo "$1" | sed "s
/..
/&${delimiter}/g
"`
130 echo "${password%${delimiter}}"