You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
4.4 KiB
Perl

# (c) Level One Entertainment, - AP 2006
#
# Dieses Perl skript liest das sourcefile
# und durchsucht es nach <include tags
#
# Sofern nicht vorhanden, werden im include verzeichnis
# die files angelegt
#------------------------------------------------------------------------------
#
# Gesucht wird nach "<!include=Textzumdarstellen,,>
#
# Die zwei ",," Zeichen sind der Indikator dafür das ein File
# mit Filenamen "Textzumdarstellen_i.html" erzeugt werden soll.
#
# Gesucht wird nach "<!include=Textzumdarstellen,includeFILEName,>
#
# includeFilename wird auf existenz geprüft. Ist es nicht vorhanden
# dann wird es erzeugt: includeFILENAME.html
#
#
$force = false; # Alle files werden überschrieben
#
# E I N S T E L L U N G E N
#
# Pfade alle relativ zum skript, das am besten im Root von der html-doku steht.
#
$sourcefile = "deu_doku.src/l3lib_schema.html";
$includedir = "deu_include.src/";
$xmldir = "deu_xml/";
#
# TEXT der in den neu erzeugten Files geschrieben wird
#
$emptytext = "<div class=\"function_small\" >" .
"<!xml=@@@INCNAME@@@,function_small.xsl>" .
"</div>";
#
# TEXT der in den neu erzeugten XML Files geschrieben wird
#
$emptyxml = "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n" .
"<!DOCTYPE f SYSTEM \"function.dtd\">\n" .
"<?xml-stylesheet type=\"text/xsl\" href=\"function.xsl\"?>\n" .
"<f>\n" .
" <Funktionsname>@@@XMLNAME@@@</Funktionsname>\n" .
" <Beschreibung>In Arbeit</Beschreibung>\n" .
" <Returnwert>\n" .
" <Typ>int</Typ>\n" .
" <Beschreibung>0 bei Erfolg</Beschreibung>\n" .
" </Returnwert>\n" .
" <Parameter>\n" .
" <Arg>\n" .
" <Typ>void</Typ>\n" .
" <Variablename></Variablename>\n" .
" <Beschreibung></Beschreibung>\n" .
" </Arg>\n" .
" </Parameter>\n" .
" <Location>\n" .
" <Headerfile>lowlevellib.h</Headerfile>\n" .
" </Location>\n" .
"</f>\n";
#
# Extension die zum generierten file dazugehängt wird
#
$extension_new = "_i.html";
$extension_old = ".html";
#
# Open Test
#
open(IFILE,"<$sourcefile" ) or die "cannot open $sourcefile";
#
# Lese schleife
#
$/ = "\n"; # Trennsymbol
$zeilen_gesamt = 0; # Zeilen zähler
$includes_gesamt = 0; # zählt includes
$filesgeneriert_gesamt = 0; # anzahl generierter Files
$xmlfilesgeneriert_gesamt = 0; # anzahl generierter XML Files
while( <IFILE> ){
chomp;
$zeilen_gesamt ++;
if( $_ =~ m/<!include=(.+),(.*),/ ) {
$includes_gesamt++;
print $1 . ":" . $2 . ": ";
# Wenn $2 leer dann $2 aus $1 genereieren
$filename = $2;
if( $filename ){
$filename = $includedir . $2 . $extension_old;
$xmlfile = $2;
}
else
{
$filename = $includedir . $1 . $extension_new;
$xmlfile = $1;
}
$xmlfile =~ /(.*)_i/; # _i entfernen
$xmlfile = $1; # _i entfernen
# Test ob include file vorhanden ist
if(! -e $filename || $force==true ){
#gibts nicht dann erzeugen
open (OFILE, ">$filename" ) or
die "Fehler beim Erzeugen von $filename";
#text template auflösen und speichern
$text = $emptytext;
$text =~ s/@@@INCNAME@@@/$xmlfile/g;
print OFILE $text; #ohne "\n" schreiben
close OFILE;
$filesgeneriert_gesamt ++;
print " ". $filename . " generiert\n";
}
else
{
print " _i.html:existiert\n";
}
# Test ob xml file vorhanden ist
$filename = $xmldir . $xmlfile . ".xml";
if(! -e $filename || $force==true){
#gibts nicht dann erzeugen
open (OFILE, ">$filename" ) or
die "Fehler beim Erzeugen von $filename";
#text template auflösen und speichern
$text = $emptyxml;
$text =~ s/@@@XMLNAME@@@/$xmlfile/g;
print OFILE $text; #ohne "\n" schreiben
close OFILE;
$xmlfilesgeneriert_gesamt ++;
print " ". $filename . " generiert\n";
}
else
{
print " xml:existiert\n";
}
}
}
# Cleanup
#
close IFILE;
print "Fertig\n";
print "Gelesene Zeilen............" . $zeilen_gesamt . "\n";
print "Anzahl Include Tags........" . $includes_gesamt . "\n";
print "Generierte Include Files..." . $filesgeneriert_gesamt . "\n";
print "Generierte XML Files......." . $xmlfilesgeneriert_gesamt . "\n";