| 1 |
#!/bin/bash |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 |
function log() { |
|---|
| 29 |
local log_syslog_facility="user" |
|---|
| 30 |
local log_syslog_level="${1}"; shift |
|---|
| 31 |
local log_syslog_pri="${log_syslog_facility}.${log_syslog_level}" |
|---|
| 32 |
local log_syslog_tag="${0##*/}[${$}]" |
|---|
| 33 |
local logger_args= |
|---|
| 34 |
case "${log_syslog_level}" in |
|---|
| 35 |
err|crit|alert|emerg) |
|---|
| 36 |
|
|---|
| 37 |
logger_args='-s' |
|---|
| 38 |
;; |
|---|
| 39 |
*) |
|---|
| 40 |
;; |
|---|
| 41 |
esac |
|---|
| 42 |
logger ${logger_args} -p "${log_syslog_pri}" -t "${log_syslog_tag}" <<-EOF |
|---|
| 43 |
${@} |
|---|
| 44 |
EOF |
|---|
| 45 |
} |
|---|
| 46 |
|
|---|
| 47 |
|
|---|
| 48 |
function die() { |
|---|
| 49 |
local retval=${1:-1}; shift |
|---|
| 50 |
if [[ ${ |
|---|
| 51 |
if [[ ${retval} -ne 0 ]]; then |
|---|
| 52 |
log crit "${@}" |
|---|
| 53 |
else |
|---|
| 54 |
log notice "${@}" |
|---|
| 55 |
fi |
|---|
| 56 |
fi |
|---|
| 57 |
exit ${retval} |
|---|
| 58 |
} |
|---|
| 59 |
|
|---|
| 60 |
|
|---|
| 61 |
|
|---|
| 62 |
|
|---|
| 63 |
|
|---|
| 64 |
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 |
|
|---|
| 69 |
declare -i act_led_pin=-1 pwr_led_pin=-1 |
|---|
| 70 |
while getopts ':a:p:' opt; do |
|---|
| 71 |
case "${opt}" in |
|---|
| 72 |
|
|---|
| 73 |
a) declare -i act_led_pin=${OPTARG};; |
|---|
| 74 |
p) declare -i pwr_led_pin=${OPTARG};; |
|---|
| 75 |
|
|---|
| 76 |
:) die 1 "option -${OPTARG} requires an argument";; |
|---|
| 77 |
|
|---|
| 78 |
\?) die 1 "unknown option -${OPTARG}";; |
|---|
| 79 |
|
|---|
| 80 |
*) die 1 "there's an error in the matrix!";; |
|---|
| 81 |
esac |
|---|
| 82 |
done; opt_idx=${OPTIND}; unset OPTIND |
|---|
| 83 |
|
|---|
| 84 |
|
|---|
| 85 |
|
|---|
| 86 |
|
|---|
| 87 |
|
|---|
| 88 |
|
|---|
| 89 |
if [[ ${opt_idx} -eq 1 ]]; then |
|---|
| 90 |
die 1 "no command line options specified" |
|---|
| 91 |
fi |
|---|
| 92 |
|
|---|
| 93 |
|
|---|
| 94 |
|
|---|
| 95 |
let opt_idx--; shift ${opt_idx}; unset opt_idx |
|---|
| 96 |
set -- "${@}" |
|---|
| 97 |
|
|---|
| 98 |
|
|---|
| 99 |
if [[ -z ${INTERFACE} ]]; then |
|---|
| 100 |
die 1 "udev environment variable INTERFACE missing (wifi device)" |
|---|
| 101 |
fi |
|---|
| 102 |
|
|---|
| 103 |
|
|---|
| 104 |
if [[ -z ${act_led_pin} ]]; then |
|---|
| 105 |
die 1 "${INTERFACE}: no activity LED pin specified" |
|---|
| 106 |
fi |
|---|
| 107 |
if [[ -z ${pwr_led_pin} ]]; then |
|---|
| 108 |
die 1 "${INTERFACE}: no power LED pin specified" |
|---|
| 109 |
fi |
|---|
| 110 |
|
|---|
| 111 |
|
|---|
| 112 |
if [[ ${pwr_led_pin} -gt -1 ]]; then |
|---|
| 113 |
log info "${INTERFACE}: enabling power LED on pin #${pwr_led_pin}" |
|---|
| 114 |
sysctl -q -e -w dev.${INTERFACE}.ledpin=${pwr_led_pin} |
|---|
| 115 |
sysctl -q -e -w dev.${INTERFACE}.softled=1 |
|---|
| 116 |
sysctl -q -e -w dev.${INTERFACE}.softled=0 |
|---|
| 117 |
fi |
|---|
| 118 |
|
|---|
| 119 |
|
|---|
| 120 |
if [[ ${act_led_pin} -gt -1 ]]; then |
|---|
| 121 |
log info "${INTERFACE}: enabling activity LED on pin #${act_led_pin}" |
|---|
| 122 |
sysctl -q -e -w dev.${INTERFACE}.ledpin=${act_led_pin} |
|---|
| 123 |
sysctl -q -e -w dev.${INTERFACE}.softled=1 |
|---|
| 124 |
fi |
|---|
| 125 |
|
|---|
| 126 |
exit 0 |
|---|
| 127 |
|
|---|