Skip to content

Commit 73cf2cd

Browse files
Add files via upload
1 parent 2cc58e7 commit 73cf2cd

1 file changed

Lines changed: 107 additions & 0 deletions

File tree

gnuton_webs_update.sh

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
#!/bin/sh
2+
3+
readonly SCRIPT_VERSTAG="25070312"
4+
5+
wget_options="-q -t 2 -T 30"
6+
7+
fwsite="https://raw.githubusercontent.com/gnuton/asuswrt-merlin.ng/master/updates"
8+
9+
nvram set webs_state_update=0 # INITIALIZING
10+
nvram set webs_state_flag=0 # 0: Don't do upgrade 1: Do upgrade
11+
nvram set webs_state_error=0
12+
nvram set webs_state_url=""
13+
14+
#openssl support rsa check
15+
IS_SUPPORT_NOTIFICATION_CENTER=$(nvram get rc_support|grep -i nt_center)
16+
if [ "$IS_SUPPORT_NOTIFICATION_CENTER" != "" ]; then
17+
. /tmp/nc/event.conf
18+
fi
19+
# current firmware information
20+
current_base=$(nvram get firmver | sed "s/\.//g")
21+
current_firm=$(nvram get buildno | cut -d. -f1)
22+
current_buildno=$(nvram get buildno | cut -d. -f2)
23+
#Extract extendno, subtract value by 1 if it contains "alpha/beta", remove all other values such as "_rog" or "-g*"
24+
current_extendno="$(nvram get extendno | awk -F'[_-]' '{n=$1} /[aA]lpha|[bB]eta/{n--} END{print n}')"
25+
26+
# get firmware information
27+
model=$(nvram get productid)
28+
model="$model#"
29+
30+
if [ "$current_base" = "3006" ]; then
31+
manifest_file="manifest_3006.txt"
32+
else
33+
manifest_file="manifest2.txt"
34+
fi
35+
36+
echo "---- update real normal----" > /tmp/webs_upgrade.log
37+
/usr/sbin/wget $wget_options "$fwsite/$manifest_file" -O /tmp/wlan_update.txt
38+
39+
if [ "$?" != "0" ]; then
40+
nvram set webs_state_error=1
41+
else
42+
43+
fullver="$(grep "$model" /tmp/wlan_update.txt | tail -n1 | sed 's/.*#FW//')"
44+
fullver=$(echo $fullver | sed s/#.*//;)
45+
firmbase=$(echo $fullver | cut -d. -f1)
46+
firmver=$(echo $fullver | cut -d. -f2)
47+
buildno=$(echo $fullver | cut -d. -f3)
48+
49+
extendno="$(grep "$model" /tmp/wlan_update.txt | tail -n1 | sed 's/.*#EXT//')"
50+
extendno=$(echo $extendno | sed s/#.*//;)
51+
lextendno=$(echo $extendno | sed s/-g.*//;)
52+
53+
nvram set webs_state_info=${firmbase}_${firmver}_${buildno}_${extendno}
54+
55+
rm -f /tmp/wlan_update.*
56+
fi
57+
58+
echo "---- Have ${current_base}.${current_firm}.${current_buildno}_${current_extendno}----" >> /tmp/webs_upgrade.log
59+
echo "---- Stable available ${firmbase}.${firmver}.${buildno}_${extendno}----" >> /tmp/webs_upgrade.log
60+
61+
update_webs_state_info=$(nvram get webs_state_info)
62+
last_webs_state_info=$(nvram get webs_last_info)
63+
if [ "$firmbase" == "" ] || [ "$firmver" == "" ] || [ "$buildno" == "" ] || [ "$lextendno" == "" ]; then
64+
nvram set webs_state_error=1 # exist no Info
65+
else
66+
67+
if [ "$current_base" -lt "$firmbase" ]; then
68+
newfirm=1
69+
elif [ "$current_base" -eq "$firmbase" ] && [ "$current_firm" -lt "$firmver" ]; then
70+
newfirm=1
71+
elif [ "$current_base" -eq "$firmbase" ] && [ "$current_firm" -eq "$firmver" ] && [ "$current_buildno" -lt "$buildno" ]; then
72+
newfirm=1
73+
elif [ "$current_base" -eq "$firmbase" ] && [ "$current_firm" -eq "$firmver" ] && [ "$current_buildno" -eq "$buildno" ] && [ "$current_extendno" -lt "$lextendno" ]; then
74+
newfirm=1
75+
else
76+
newfirm=0
77+
fi
78+
79+
if [ "$newfirm" -eq "1" ]; then
80+
echo "---- Update available" >> /tmp/webs_upgrade.log
81+
nvram set webs_state_flag=1 # Do upgrade
82+
if [ "$IS_SUPPORT_NOTIFICATION_CENTER" != "" ]; then
83+
if [ "$last_webs_state_info" != "$update_webs_state_info" ]; then
84+
Notify_Event2NC "$SYS_FW_NWE_VERSION_AVAILABLE_EVENT" "{\"fw_ver\":\"$update_webs_state_info\"}"
85+
nvram set webs_last_info="$update_webs_state_info"
86+
fi
87+
fi
88+
fi
89+
fi
90+
# download releasee note
91+
webs_state_flag=$(nvram get webs_state_flag)
92+
93+
if [ "$webs_state_flag" -eq "1" ]; then
94+
releasenote_file0=$(nvram get webs_state_info)_note.txt
95+
releasenote_path0="/tmp/release_note0.txt"
96+
echo "---- download real release note ----" >> /tmp/webs_upgrade.log
97+
/usr/sbin/wget $wget_options $fwsite/$releasenote_file0 -O $releasenote_path0
98+
99+
if [ "$?" != "0" ]; then
100+
echo "---- download $fwsite/$releasenote_file0 failed ----" >> /tmp/webs_upgrade.log
101+
nvram set webs_state_error=1
102+
else
103+
echo "---- $fwsite/$releasenote_file0 ----" >> /tmp/webs_upgrade.log
104+
fi
105+
fi
106+
107+
nvram set webs_state_update=1

0 commit comments

Comments
 (0)