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