1#!/bin/sh 2# ASUS app autorun script 3# $1: device name, $2: mounted path. 4 5 6nvram set apps_state_autorun=0 # INITIALIZING 7nvram set apps_state_error=0 8APPS_INSTALL_FOLDER=`nvram get apps_install_folder` 9SWAP_ENABLE=`nvram get apps_swap_enable` 10SWAP_THRESHOLD=`nvram get apps_swap_threshold` 11SWAP_FILE=`nvram get apps_swap_file` 12SWAP_SIZE=`nvram get apps_swap_size` 13APPS_PATH=/opt 14PATH=$APPS_PATH/usr/bin:$APPS_PATH/bin:$APPS_PATH/usr/sbin:$APPS_PATH/sbin:/usr/bin:/bin:/usr/sbin:/sbin 15unset LD_LIBRARY_PATH 16unset LD_PRELOAD 17 18 19if [ -n "$1" ] && [ -n "$2" ];then 20 APPS_DEV=$1 21 APPS_MOUNTED_PATH=$2 22 nvram set apps_dev= 23 nvram set apps_mounted_path= 24fi 25 26original_apps_mounted_path=`nvram get apps_mounted_path` 27if [ -n "$APPS_DEV" ] && [ -n "$APPS_MOUNTED_PATH" ] && [ -z "$original_apps_mounted_path" ]; then 28 nvram set apps_dev=$APPS_DEV 29 nvram set apps_mounted_path=$APPS_MOUNTED_PATH 30else 31 nvram set apps_state_error=1 32 exit 1 33fi 34 35APPS_INSTALL_PATH=$APPS_MOUNTED_PATH/$APPS_INSTALL_FOLDER 36 37i=0 38while [ $i -le 20 ]; do 39 success_start_service=`nvram get success_start_service` 40 if [ "$success_start_service" == "1" ]; then 41 break 42 fi 43 44 i=$((i+1)) 45 echo "autorun APP: wait $i seconds..." 46 sleep 1 47done 48 49 50nvram set apps_state_autorun=1 # CHECKING_POOL 51APPS_MOUNTED_TYPE=`mount |grep "/dev/$APPS_DEV on " |awk '{print $5}'` 52if [ "$APPS_MOUNTED_TYPE" == "vfat" ] || [ "$APPS_MOUNTED_TYPE" == "tfat" ]; then 53 link_ready=`app_check_pool.sh $APPS_DEV` 54 if [ "$link_ready" == "Non-linked" ]; then 55 echo "Building the link of $APPS_MOUNTED_PATH." 56 app_base_link.sh 57 if [ "$?" != "0" ]; then 58 # apps_state_error was already set by app_base_link.sh. 59 exit 1 60 fi 61 elif [ "$link_ready" == "linked" ]; then 62 echo "Had already built the link of $APPS_MOUNTED_PATH." 63 elif [ "$link_ready" == "Non-mounted" ]; then 64 echo "Had not mounted yet!" 65 nvram set apps_state_error=2 66 exit 1 67 else 68 echo "Invalid input of the mounted path!" 69 nvram set apps_state_error=1 70 exit 1 71 fi 72else 73 echo "Building the link of $APPS_MOUNTED_PATH." 74 app_base_link.sh 75 if [ "$?" != "0" ]; then 76 # apps_state_error was already set by app_base_link.sh. 77 exit 1 78 fi 79fi 80 81 82nvram set apps_state_autorun=2 # CREATING_SWAP 83if [ "$SWAP_ENABLE" != "1" ]; then 84 echo "Disable to swap!" 85else 86 mem_size=`free |sed '1,3d' |awk '{print $4}'` 87 if [ "$SWAP_THRESHOLD" == "" ] || [ $mem_size -lt $SWAP_THRESHOLD ]; then 88 pool_size=`df /dev/$APPS_DEV |sed '1d' |awk '{print $4}'` 89 if [ $pool_size -gt $SWAP_SIZE ]; then 90 if [ -e "$APPS_INSTALL_PATH/$SWAP_FILE" ]; then 91 swapoff $APPS_INSTALL_PATH/$SWAP_FILE 92 rm -rf $APPS_INSTALL_PATH/$SWAP_FILE 93 fi 94 95 swap_count=`expr $SWAP_SIZE / 1000 - 1` 96 echo "dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_count" 97 dd if=/dev/zero of=$APPS_INSTALL_PATH/$SWAP_FILE bs=1M count=$swap_count 98 echo "mkswap $APPS_INSTALL_PATH/$SWAP_FILE" 99 mkswap $APPS_INSTALL_PATH/$SWAP_FILE 100 echo "swapon $APPS_INSTALL_PATH/$SWAP_FILE" 101 swapon $APPS_INSTALL_PATH/$SWAP_FILE 102 else 103 echo "No enough partition size!" 104 nvram set apps_state_error=3 105 exit 1 106 fi 107 fi 108fi 109 110 111nvram set apps_state_autorun=3 # EXECUTING 112link_internet=`nvram get link_internet` 113if [ "$link_internet" == "2" ]; then 114 app_update.sh & 115fi 116 117# run all APPs by order. 118app_init_run.sh allpkg start 119 120 121nvram set apps_state_autorun=4 # FINISHED 122