Skip to content

Commit 3ff3aca

Browse files
committed
Add reset button actions
1 parent 385b877 commit 3ff3aca

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
mkdir -p /etc/hotplug.d/button
2+
cat << "EOF" > /etc/hotplug.d/button/00-button
3+
source /lib/functions.sh
4+
5+
do_button () {
6+
local button
7+
local action
8+
local handler
9+
local min
10+
local max
11+
12+
config_get button "${1}" button
13+
config_get action "${1}" action
14+
config_get handler "${1}" handler
15+
config_get min "${1}" min
16+
config_get max "${1}" max
17+
18+
[ "${ACTION}" = "${action}" -a "${BUTTON}" = "${button}" -a -n "${handler}" ] && {
19+
[ -z "${min}" -o -z "${max}" ] && eval ${handler}
20+
[ -n "${min}" -a -n "${max}" ] && {
21+
[ "${min}" -le "${SEEN}" -a "${max}" -ge "${SEEN}" ] && eval ${handler}
22+
}
23+
}
24+
}
25+
26+
config_load system
27+
config_foreach do_button button
28+
EOF
29+
30+
cat << "EOF" > /usr/bin/reset_wifi_config
31+
#!/bin/sh
32+
{
33+
rm -f /etc/config/network
34+
/bin/config_generate generate_static_network
35+
uci delete network.lan.ifname
36+
uci delete network.lan.type
37+
uci set network.wwan='interface'
38+
uci set network.wwan.proto='dhcp'
39+
uci commit network
40+
41+
rm -f /etc/config/wireless
42+
wifi config
43+
uci delete wireless.@wifi-device[-1].disabled
44+
uci delete wireless.@wifi-device[0].disabled
45+
uci set wireless.@wifi-iface[0].network='wwan'
46+
uci set wireless.@wifi-iface[0].mode='sta'
47+
uci set wireless.@wifi-iface[0].ssid='$0102030405$'
48+
uci delete wireless.@wifi-iface[0].encryption
49+
uci commit wireless
50+
ubus call network restart
51+
for i in 1 2 3
52+
do
53+
echo 128 > /sys/class/leds/red/brightness
54+
echo 128 > /sys/class/leds/green/brightness
55+
echo 0 > /sys/class/leds/blue/brightness
56+
sleep 1
57+
echo 0 > /sys/class/leds/red/brightness
58+
echo 0 > /sys/class/leds/green/brightness
59+
echo 0 > /sys/class/leds/blue/brightness
60+
sleep 1
61+
done
62+
}
63+
EOF
64+
chmod +x /usr/bin/reset_wifi_config
65+
66+
cat << "EOF" > /usr/bin/reset_overlay
67+
#!/bin/sh
68+
{
69+
rm -rf /overlay/upper/.* /overlay/upper/*
70+
71+
for i in 1 2 3
72+
do
73+
echo 180 > /sys/class/leds/red/brightness
74+
echo 0 > /sys/class/leds/green/brightness
75+
echo 0 > /sys/class/leds/blue/brightness
76+
sleep 1
77+
echo 0 > /sys/class/leds/red/brightness
78+
echo 0 > /sys/class/leds/green/brightness
79+
echo 0 > /sys/class/leds/blue/brightness
80+
sleep 1
81+
done
82+
reboot
83+
}
84+
EOF
85+
chmod +x /usr/bin/reset_overlay
86+
87+
uci add system button
88+
uci set system.@button[-1].button="BTN_0"
89+
uci set system.@button[-1].action="released"
90+
uci set system.@button[-1].min="8"
91+
uci set system.@button[-1].max="14"
92+
uci set system.@button[-1].handler="/usr/bin/reset_wifi_config"
93+
uci add system button
94+
uci set system.@button[-1].button="BTN_0"
95+
uci set system.@button[-1].action="released"
96+
uci set system.@button[-1].min="16"
97+
uci set system.@button[-1].max="25"
98+
uci set system.@button[-1].handler="/usr/bin/reset_overlay"
99+
uci commit system
100+
101+
exit 0

0 commit comments

Comments
 (0)