improve button handling

SVN-Revision: 34823
This commit is contained in:
John Crispin 2012-12-21 13:47:50 +00:00
parent 7ce4c81647
commit 59cc6d9ddd

View File

@ -4,21 +4,49 @@
. /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)
logger "reset pressed"
echo "REBOOT" > /dev/console
sleep 3
sync
reboot
if [ "$SEEN" -lt 1 ]
then
echo "REBOOT" > /dev/console
sync
reboot
elif [ "$SEEN" -gt 5 ]
then
echo "FACTORY RESET" > /dev/console
firstboot && reboot &
fi
;;
BTN_1)
logger "factory pressed"
echo "FACTORY RESET" > /dev/console
jffs2_mark_erase "rootfs_data"
sync
reboot
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}"
;;