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