1#!/bin/sh
2# $1: only update the list name.
3
4
5apps_ipkg_old=`nvram get apps_ipkg_old`
6f=`nvram get apps_install_folder`
7case $f in
8	"asusware.arm")
9		pkg_type=`echo $f|sed -e "s,asusware\.,,"`
10		;;
11	"asusware.big")
12		pkg_type="mipsbig"
13		;;
14	"asusware.mipsbig")
15		pkg_type=`echo $f|sed -e "s,asusware\.,,"`
16		;;
17	"asusware")
18		pkg_type="mipsel"
19		;;
20	*)
21		echo "Unknown apps_install_folder: $f"
22		exit 1
23		;;
24esac
25ASUS_SERVER=`nvram get apps_ipkg_server`
26wget_timeout=`nvram get apps_wget_timeout`
27#wget_options="-nv -t 2 -T $wget_timeout --dns-timeout=120"
28wget_options="-q -t 2 -T $wget_timeout"
29
30
31nvram set apps_state_update=0 # INITIALIZING
32#nvram set apps_state_error=0
33APPS_PATH=/opt
34CONF_FILE=$APPS_PATH/etc/ipkg.conf
35TEMP_FILE=/tmp/ipkg.server.list
36
37SERVER_LIST_FILES="Packages.gz Packages.zip"
38SERVER_LIST_FILE=
39TEMP_LIST_FILE=/tmp/Packages.gz
40LIST_DIR=$APPS_PATH/lib/ipkg/lists
41apps_local_space=`nvram get apps_local_space`
42
43if [ ! -f "$CONF_FILE" ]; then
44	echo "No conf file of ipkg!"
45	exit 1
46fi
47
48link_internet=`nvram get link_internet`
49if [ "$link_internet" != "2" ]; then
50	exit 1
51fi
52
53if [ "$pkg_type" == "arm" ]; then
54	sed -i '/^#src\/gz.*ASUSWRT$/c src/gz optware.mbwe-bluering http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable' $CONF_FILE
55fi
56
57grep -n '^src.*' $CONF_FILE |sort -r |awk '{print $2 " " $3}' > $TEMP_FILE
58row_num=`wc -l < $TEMP_FILE`
59if [ -z "$row_num" ]; then
60	row_num=0
61fi
62
63
64nvram set apps_state_update=1 # UPDATING
65SQ_TEST=`nvram get apps_sq`
66i=0
67while [ $i -lt $row_num ]; do
68	i=$((i+1))
69	list_name=`sed -n $i'p' $TEMP_FILE |awk '{print $1}'`
70	server_name=`sed -n $i'p' $TEMP_FILE |awk '{print $2}'`
71
72	if [ -n "$1" ] && [ "$1" != "$list_name" ]; then
73		continue;
74	fi
75
76	if [ "$list_name" == "optware.asus" ]; then
77		if [ "$pkg_type" != "arm" ] && [ -n "$apps_ipkg_old" ] && [ "$apps_ipkg_old" == "1" ]; then
78			IS_SUPPORT_SSL=`nvram get rc_support|grep -i HTTPS`
79			if [ -n "$IS_SUPPORT_SSL" ]; then
80				if [ "$SQ_TEST" == "1" ]; then
81					server_name=https://dlcdnets.asus.com/pub/ASUS/LiveUpdate/Release/Wireless_SQ
82				else
83					server_name=https://dlcdnets.asus.com/pub/ASUS/LiveUpdate/Release/Wireless
84				fi
85				wget_options="$wget_options --no-check-certificate"
86			else
87				if [ "$SQ_TEST" == "1" ]; then
88					server_name=http://dlcdnet.asus.com/pub/ASUS/LiveUpdate/Release/Wireless_SQ
89				else
90					server_name=http://dlcdnet.asus.com/pub/ASUS/LiveUpdate/Release/Wireless
91				fi
92			fi		
93		else
94			if [ "$SQ_TEST" == "1" ]; then
95				server_name=`echo "$ASUS_SERVER" |sed 's/stable/unstable/g'`
96			else
97				server_name=$ASUS_SERVER
98			fi
99		fi
100	fi
101
102	SERVER_LIST_FILE=
103	for list in $SERVER_LIST_FILES; do
104		echo "wget --spider $wget_options $server_name/$list"
105		wget --spider $wget_options $server_name/$list
106		if [ "$?" == "0" ]; then
107			SERVER_LIST_FILE=$list
108			break
109		fi
110	done
111
112	if [ -z "$SERVER_LIST_FILE" ]; then
113		continue
114	fi
115
116	echo "wget -c $wget_options -O $TEMP_LIST_FILE $server_name/$SERVER_LIST_FILE"
117	wget -c $wget_options -O $TEMP_LIST_FILE $server_name/$SERVER_LIST_FILE
118	if [ "$?" != "0" ]; then
119		rm -f $TEMP_LIST_FILE
120
121		continue
122	fi
123
124	gunzip -c $TEMP_LIST_FILE > $LIST_DIR/$list_name
125
126	rm -f $TEMP_LIST_FILE
127done
128rm -f $TEMP_FILE
129
130
131nvram set apps_state_update=2 # FINISHED
132