diff options
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh')
-rw-r--r-- | target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh b/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh new file mode 100644 index 0000000..4b305fb --- /dev/null +++ b/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +[ "${ACTION}" = "released" ] || exit 0 + +. /lib/functions.sh + +logger "$BUTTON pressed for $SEEN seconds" + +local rfkill_state=0 + +wifi_rfkill_set() { + uci set wireless.$1.disabled=$rfkill_state +} + +wifi_rfkill_check() { + local disabled + config_get disabled $1 disabled + [ "$disabled" = "1" ] || rfkill_state=1 +} + +case "${BUTTON}" in + reset) + if [ "$SEEN" -lt 1 ] + then + echo "REBOOT" > /dev/console + sync + reboot + elif [ "$SEEN" -gt 5 ] + then + echo "FACTORY RESET" > /dev/console + firstboot && reboot & + fi + ;; + + wps) + for dir in /var/run/hostapd-*; do + [ -d "$dir" ] || continue + hostapd_cli -p "$dir" wps_pbc + done + ;; + + rfkill) + config_load wireless + config_foreach wifi_rfkill_check wifi-device + config_foreach wifi_rfkill_set wifi-device + uci commit wireless + wifi up + ;; + + *) + logger "unknown button ${BUTTON}" + ;; +esac |