git » fp-git.git » commit d5ed029

added type defines handling

author ecalot
2004-06-18 04:56:41 UTC
committer ecalot
2004-06-18 04:56:41 UTC
parent 935057bf8506ea130bf56e8f721c4e2a8f82ef94

added type defines handling

stuff/data/makedat +47 -4

diff --git a/stuff/data/makedat b/stuff/data/makedat
index 922e72e..8c490ec 100755
--- a/stuff/data/makedat
+++ b/stuff/data/makedat
@@ -1,5 +1,6 @@
 #!/bin/bash
 
+#configure colors
 NO_COLOR="\033[0m"
 LGREEN="\033[01;32m"
 LRED="\033[01;31m"
@@ -8,9 +9,14 @@ SDONE="[$LGREEN Done$NO_COLOR ]"
 SOK="[$LGREEN  OK $NO_COLOR ]"
 SFAIL="[$LRED Fail$NO_COLOR ]"
 
+#setup
 numberstart=50
+VARDEFINE="#define"
+VARDEFSTART="DATA_START_ITEMS"
+VARDEFEND="DATA_END_ITEMS"
 
 #initializes output files
+FAIL=0
 number=$numberstart
 echo -n "Generating header and xml files            "
 cp -f result/data.h result/data.h.bak 2>/dev/null >/dev/null
@@ -20,15 +26,44 @@ cat xml/gen1.xml > xml/resources.xml
 #process and add all definitions to the xml and h files
 for definition in def/*.def 
 do
+	#define variables and convert the resource type
 	definition=`echo $definition|sed -e "s/def\/\(.*\)\.def/\1/g"`
-	bin/makeindex def/$definition.def index/$definition.index
+	FDEF="def/$definition.def"
+	FPROC="proc/$definition.p"
+	FINDEX="index/$definition.index"
+	TYPE=`sed -e '1,1d' -e '3,$d' $FDEF`
+	LINEX="^$VARDEFINE RES_TYPE_$TYPE \([0-9]*\)\$"
+	LINE=`grep -e "$LINEX" result/types.h`	
+	ID=`echo "$LINE"|sed -e "s/$LINEX/\1/g"`
+
+	if [ -z "$ID" ] 
+	then
+		FAIL=1
+		echo "Invalid type $TYPE in $FDEF" >> error_log
+	fi
+	
+	#convert def files to proc files
+	sed -e "2,1s/.*/$ID/g" $FDEF > $FPROC
+	
+	#convert proc files to index files
+	bin/makeindex $FPROC $FINDEX
+
+	#add logs
 	echo "  <item value=\"$number\" path=\"$definition.index\">$definition</item>" >> xml/resources.xml
-	echo "#define $definition $number" >> result/data.h
+	echo "$VARDEFINE $definition $number" >> result/data.h
+
 	number=`expr $number + 1`
 done
+
+#finish files
 cat xml/gen2.xml >> xml/resources.xml
-echo -e "\n#define DATA_START_ITEMS $numberstart\n#define DATA_END_ITEMS $number" >> result/data.h
-echo -e "$SOK"
+echo -e "\n$VARDEFINE $VARDEFSTART $numberstart\n$VARDEFINE $VARDEFEND $number" >> result/data.h
+if [ $FAIL == 1 ]
+then
+	echo -e "$SFAIL"
+else
+	echo -e "$SOK"
+fi
 
 #generate the dat file using the proceced indexes and the xml file
 echo -n "Generating dat file                        "
@@ -40,3 +75,11 @@ if [ $result == 0 ] ; then
 else
 	echo -e "$SFAIL"
 fi
+
+if [ $FAIL == 1 ]
+then
+	echo -e "\nPlease correct the following errors:\n"
+	cat error_log > /dev/stderr
+	rm error_log
+fi
+