1#!/bin/sh
2# $1: package name, $2: field name,
3# $3: 0: find all files(default), 1: find the control file, 2: find the list file.
4
5
6APPS_PATH=/opt
7CONF_FILE=$APPS_PATH/etc/ipkg.conf
8LIST_DIR=$APPS_PATH/lib/ipkg/lists
9LIST_FILES=
10TEMP_CONF_FILE=/tmp/package.txt
11got_field=0
12field_gone=
13field_value=
14
15
16if [ -z "$1" ] || [ -z "$2" ]; then
17	echo "Usage: app_get_field.sh <Package name> <Field name> [0|1|2]"
18	exit 1
19fi
20
21if [ -n "$3" ] && [ "$3" != "0" ]  && [ "$3" != "1" ] && [ "$3" != "2" ]; then
22	echo "Usage: app_get_field.sh <Package name> <Field name> [0|1|2]"
23	exit 1
24fi
25
26if [ "$3" != "2" ]; then
27	pkg_control_file=$APPS_PATH/lib/ipkg/info/$1.control
28	if [ -f "$pkg_control_file" ]; then
29		field_gone=`grep "$2: " $pkg_control_file`
30		if [ -n "$field_gone" ]; then
31			field_value=`grep "$2: " $pkg_control_file |awk '{print $2}'`
32			echo "$field_value"
33			exit 0
34		fi
35	fi
36
37	if [ "$3" == "1" ]; then
38		exit 0
39	fi
40fi
41
42if [ ! -f "$CONF_FILE" ]; then
43	exit 1
44fi
45
46LIST_FILES=`grep -n '^src.*' $CONF_FILE |sort -r |awk '{print "'$LIST_DIR'/"$2}'`
47if [ -z "$LIST_FILES" ]; then
48	exit 1
49fi
50
51for f in $LIST_FILES; do
52	if [ ! -f "$f" ]; then
53		continue
54	fi
55
56	field_gone=`grep "Package: "$1"$" $f`
57	if [ -z "$field_gone" ]; then
58		continue
59	fi
60	grep -A 15 "Package: "$1"$" $f > $TEMP_CONF_FILE
61
62	field_gone=`grep "$2: " $TEMP_CONF_FILE`
63	if [ -z "$field_gone" ]; then
64		continue
65	fi
66
67	field_value=`grep "$2: " $TEMP_CONF_FILE |sed '2,$d' |awk '{FS="'$2': "; print $2}' |sed 's/, /,/g'`
68	rm -f $TEMP_CONF_FILE
69	echo "$field_value"
70	exit 0
71done
72