Skip to content

Commit 3846144

Browse files
committed
Add reset button actions
1 parent 3d18156 commit 3846144

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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 set network.@device[0].ports='wlan0'
36+
uci set network.wwan='interface'
37+
uci set network.wwan.proto='dhcp'
38+
uci commit network
39+
40+
rm -f /etc/config/wireless
41+
wifi config
42+
uci delete wireless.@wifi-device[0].disabled
43+
uci delete wireless.@wifi-device[-1].disabled
44+
uci set wireless.@wifi-iface[-1].network='wwan'
45+
uci set wireless.@wifi-iface[-1].mode='sta'
46+
uci set wireless.@wifi-iface[-1].ssid='$0102030405$'
47+
uci delete wireless.@wifi-iface[-1].encryption
48+
uci commit wireless
49+
ubus call network restart
50+
for i in 1 2 3
51+
do
52+
echo 128 > /sys/class/leds/red/brightness
53+
echo 128 > /sys/class/leds/green/brightness
54+
echo 0 > /sys/class/leds/blue/brightness
55+
sleep 1
56+
echo 0 > /sys/class/leds/red/brightness
57+
echo 0 > /sys/class/leds/green/brightness
58+
echo 0 > /sys/class/leds/blue/brightness
59+
sleep 1
60+
done
61+
}
62+
EOF
63+
chmod +x /usr/bin/reset_wifi_config
64+
65+
cat << "EOF" > /usr/bin/reset_overlay
66+
#!/bin/sh
67+
{
68+
rm -rf /overlay/upper/.* /overlay/upper/*
69+
70+
for i in 1 2 3
71+
do
72+
echo 180 > /sys/class/leds/red/brightness
73+
echo 0 > /sys/class/leds/green/brightness
74+
echo 0 > /sys/class/leds/blue/brightness
75+
sleep 1
76+
echo 0 > /sys/class/leds/red/brightness
77+
echo 0 > /sys/class/leds/green/brightness
78+
echo 0 > /sys/class/leds/blue/brightness
79+
sleep 1
80+
done
81+
reboot
82+
}
83+
EOF
84+
chmod +x /usr/bin/reset_overlay
85+
86+
uci add system button
87+
uci set system.@button[-1].button="BTN_0"
88+
uci set system.@button[-1].action="released"
89+
uci set system.@button[-1].min="8"
90+
uci set system.@button[-1].max="14"
91+
uci set system.@button[-1].handler="/usr/bin/reset_wifi_config"
92+
uci add system button
93+
uci set system.@button[-1].button="BTN_0"
94+
uci set system.@button[-1].action="released"
95+
uci set system.@button[-1].min="16"
96+
uci set system.@button[-1].max="25"
97+
uci set system.@button[-1].handler="/usr/bin/reset_overlay"
98+
uci commit system
99+
100+
exit 0

0 commit comments

Comments
 (0)