summaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh
blob: 4b305fbdfbd548bdda91694b1e8066605b054d95 (plain)
1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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