# (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";