1#!/bin/sh 2# $1: package name, $2: yes or no, $3: 0 (if don't need to restart or stop). 3 4 5# $1: package name. 6# return value. 1: have package. 0: no package. 7_check_package(){ 8 package_ready=`ipkg list_installed | grep "$1 "` 9 package_ready2=`app_get_field.sh $1 Enabled 1` 10 11 if [ -z "$package_ready" ] && [ -z "$package_ready2" ]; then 12 return 0 13 else 14 return 1 15 fi 16} 17 18 19nvram set apps_state_enable=0 # INITIALIZING 20if [ -z "$1" ] || [ -z "$2" ]; then 21 echo "Usage: app_set_enabled.sh <Package name> <yes|no>" 22 nvram set apps_state_error=1 23 exit 1 24fi 25 26if [ "$2" != "yes" ] && [ "$2" != "no" ]; then 27 echo "Usage: app_set_enabled.sh <Package name> <yes|no>" 28 nvram set apps_state_error=1 29 exit 1 30fi 31 32pkg_control_file= 33_check_package $1 34if [ "$?" == "0" ]; then 35 echo "The \"$1\" is not installed yet!" 36 nvram set apps_state_error=8 37 exit 1 38else 39 pkg_control_file=/opt/lib/ipkg/info/$1.control 40fi 41 42 43nvram set apps_state_enable=1 # SETTING 44orig_value=`app_get_field.sh $1 Enabled 1` 45if [ "$orig_value" == "$2" ]; then 46 echo "The field(Enabled) was set \"$2\" already." 47else 48 Field_enabled=`grep "Enabled: " "$pkg_control_file"` 49 50 if [ -z "$Field_enabled" ]; then 51 sed -i '$a Enabled: '$2 $pkg_control_file 52 else 53 sed -i 's/Enabled: .*$/Enabled: '$2'/g' $pkg_control_file 54 fi 55fi 56 57if [ "$3" != "0" ]; then 58 if [ "$2" == "yes" ]; then 59 echo "Restarting the package..." 60 app_init_run.sh $1 restart 61 else 62 echo "Stop the package..." 63 app_init_run.sh $1 stop 64 fi 65else 66 if [ "$2" == "yes" ]; then 67 echo "Skip to restart the package!" 68 else 69 echo "Skip to stop the package!" 70 fi 71fi 72 73 74nvram set apps_state_enable=2 # FINISHED 75