small cleanup
[asterisk/asterisk.git] / build_tools / prep_moduledeps
1 #!/bin/sh
2
3 get_description() {
4         x=${1}
5         TDESC=`cat $x | grep -e *tdesc | cut -f 2 -d '"'`
6         if [ "$TDESC" = "" ]; then
7                 TDESC=`cat $x | grep -A 2 -e *description | grep -e '\"'  | cut -f 2 -d '"'` 
8         fi
9         if [ "$TDESC" = "" ]; then
10                 TDESC=`cat $x | grep -e MODULE_DESCRIPTION | grep -v return | cut -f 2 -d '"'`
11         fi
12         if [ "$TDESC" = "" ]; then
13                 TDESC=`cat $x | grep -e tdesc\\\[\\\] | cut -f 2 -d '"'`
14         fi
15         if [ "$TDESC" = "" ]; then
16                 TDESC=`cat $x | grep -e desc\\\[\\\] | grep -v description | cut -f 2 -d '"'`
17         fi
18         if [ "$TDESC" = "" ]; then
19                 TDESC=`cat $x | grep -e *desc | grep -v descrip | cut -f 2 -d '"'`
20         fi
21         if [ "$TDESC" = "" ]; then
22                 TDESC=`cat $x | grep -e *dtext | grep static | cut -f 2 -d '"'`
23         fi
24         if [ "$TDESC" = "" ]; then
25                 TDESC=`cat $x | grep -A 2 -e *synopsis | grep -e '\"'  | cut -f 2 -d '"'` 
26         fi
27 }
28
29 process_dir() {
30         dir=${1}
31         prefix=${2}_
32         catsuffix=${3}
33         displayname=${4}
34
35         echo -e "\t<category name=\"MENUSELECT_${catsuffix}\" displayname=\"${displayname}\">"
36         for file in `ls ${dir}/${prefix}*.c ${dir}/${prefix}*.cc 2> /dev/null | sort`
37         do
38                 if [ ! -f ${file} ]; then
39                         continue
40                 fi
41                 fname=`basename ${file} .c`
42                 fname=`basename ${fname} .cc`
43                 get_description ${file}
44                 desc=${TDESC}
45                 echo -e "\t\t<member name=\"${fname}\" displayname=\"${desc}\" remove_on_change=\"${dir}/${fname}.o ${dir}/${fname}.oo ${dir}/${fname}.so\">"
46                 awk -f build_tools/get_moduleinfo ${file}
47                 echo -e "\t\t</member>"
48         done
49         echo -e "\t</category>"
50
51         for file in ${dir}/${prefix}*.c
52         do
53                 awk -f build_tools/get_makeopts ${file} >> .makeoptstmp
54         done
55 }
56
57 echo "<?xml version="1.0"?>"
58 echo
59 echo "<menu name=\"Asterisk Module Selection\">"
60 rm -f .makeoptstmp
61 process_dir apps app APPS Applications
62 process_dir cdr cdr CDR "Call Detail Recording"
63 process_dir channels chan CHANNELS "Channel Drivers"
64 process_dir codecs codec CODECS "Codec Translators"
65 process_dir formats format FORMATS "Format Interpreters"
66 process_dir funcs func FUNCS "Dialplan Functions"
67 process_dir pbx pbx PBX "PBX Modules"
68 process_dir res res RES "Resource Modules"
69 cat build_tools/cflags.xml
70 cat sounds/sounds.xml
71 cat .makeoptstmp
72 rm -f .makeoptstmp
73 echo "</menu>"