Line 163... |
Line 163... |
163 |
print "\n"; |
163 |
print "\n"; |
164 |
print "Parameters are: \n"; |
164 |
print "Parameters are: \n"; |
165 |
print " EnableApache={0|1} - Enable to run in Apache\n"; |
165 |
print " EnableApache={0|1} - Enable to run in Apache\n"; |
166 |
print " SourceDir=path - path to asm source directory\n"; |
166 |
print " SourceDir=path - path to asm source directory\n"; |
167 |
print " SourceAsm=file - name of top level asm source file\n"; |
167 |
print " SourceAsm=file - name of top level asm source file\n"; |
- |
|
168 |
print " SvnInfoFileName - name of Svn Info File\n"; |
168 |
print " TemplateDir=path - path to HTML template\n"; |
169 |
print " TemplateDir=path - path to HTML template\n"; |
169 |
print " DestinationDir=path - path to destination HTML\n"; |
170 |
print " DestinationDir=path - path to destination HTML\n"; |
170 |
Error("\n"); |
171 |
Error("\n"); |
171 |
} |
172 |
} |
172 |
|
173 |
|
173 |
|
174 |
|
174 |
function Parameters(&$CFG) |
175 |
function Parameters(&$CFG) |
175 |
// Function process Command Line parameters |
176 |
// Function process Command Line parameters |
176 |
{ |
177 |
{ |
177 |
// Info |
- |
|
178 |
print "Parameters\n"; |
- |
|
179 |
// Dummy values |
178 |
// Dummy values |
180 |
$CFG["EnableApache"] = 0; // Do not allow run in Apache |
179 |
$CFG["EnableApache"] = 0; // Do not allow run in Apache |
181 |
$CFG["SourceDir"] = ""; |
180 |
$CFG["SourceDir"] = ""; |
182 |
$CFG["SourceAsm"] = ""; |
181 |
$CFG["SourceAsm"] = ""; |
- |
|
182 |
$CFG["SvnInfoFileName"] = ""; |
183 |
$CFG["TemplateDir"] = ""; |
183 |
$CFG["TemplateDir"] = ""; |
184 |
$CFG["DestinationDir"] = ""; |
184 |
$CFG["DestinationDir"] = ""; |
185 |
// Default values (in cfg file) |
185 |
// Default values (in cfg file) |
186 |
@include_once("GenerateHTML.cfg"); |
186 |
@include_once("GenerateHTML.cfg"); |
187 |
// Command Line parameters |
187 |
// Command Line parameters |
Line 206... |
Line 206... |
206 |
return "Invalid Parameter: $Value"; |
206 |
return "Invalid Parameter: $Value"; |
207 |
} |
207 |
} |
208 |
} |
208 |
} |
209 |
} |
209 |
} |
210 |
|
210 |
|
- |
|
211 |
// Check if alowed to run in Apache |
- |
|
212 |
if ($_SERVER["argc"]==0 & ! $CFG["EnableApache"]) |
- |
|
213 |
return "<b>This Script is configured so that it will not run in Apache.</b>"; |
- |
|
214 |
|
- |
|
215 |
// Info |
- |
|
216 |
print "Parameters\n"; |
- |
|
217 |
|
211 |
// Correct paths and existence |
218 |
// Correct paths and existence |
212 |
foreach($CFG as $Key => $Value) |
219 |
foreach($CFG as $Key => $Value) |
213 |
{ |
220 |
{ |
214 |
if (stripos($Key,"Dir")) |
221 |
if (stripos($Key,"Dir")) |
215 |
{ |
222 |
{ |
Line 231... |
Line 238... |
231 |
if (count(CFG)) |
238 |
if (count(CFG)) |
232 |
foreach($CFG as $Key => $Value) |
239 |
foreach($CFG as $Key => $Value) |
233 |
print " $Key=$Value\n"; |
240 |
print " $Key=$Value\n"; |
234 |
print "\n"; |
241 |
print "\n"; |
235 |
|
242 |
|
236 |
// Check if alowed to run in Apache |
- |
|
237 |
if ($_SERVER["argc"]==0 & ! $CFG["Apache"]) |
- |
|
238 |
return "This Script is configured so that it will not run in Apache."; |
- |
|
239 |
|
- |
|
240 |
// No Error |
243 |
// No Error |
241 |
return ""; |
244 |
return ""; |
242 |
} |
245 |
} |
243 |
|
246 |
|
244 |
|
247 |
|
Line 426... |
Line 429... |
426 |
print "\n"; |
429 |
print "\n"; |
427 |
return ""; |
430 |
return ""; |
428 |
} |
431 |
} |
429 |
|
432 |
|
430 |
|
433 |
|
431 |
function GenerateWordList($TemplateDir, $DestinationDir, &$LabelList, &$WordList) |
434 |
function GenerateWordList($TemplateDir, $SvnInfoFileName, $DestinationDir, &$LabelList, &$WordList) |
432 |
// Creates HTML pages with Word List |
435 |
// Creates HTML pages with Word List |
433 |
// Returns Error String |
436 |
// Returns Error String |
434 |
// IN $TemplateDir - template directory (file WordList.*.html) |
437 |
// IN $TemplateDir - template directory (file WordList.*.html) |
435 |
// IN $LabelList - list of labels (Label, FileName, LineNumber) |
438 |
// IN $LabelList - list of labels (Label, FileName, LineNumber) |
436 |
// IN $WordList - list of words (ShortLabel, Word, Comment, Label, FileName) |
439 |
// IN $WordList - list of words (ShortLabel, Word, Comment, Label, FileName) |
Line 447... |
Line 450... |
447 |
// Read template file |
450 |
// Read template file |
448 |
$Error=MyReadFileString($FileName, $FileContent); |
451 |
$Error=MyReadFileString($FileName, $FileContent); |
449 |
if ($Error!="") |
452 |
if ($Error!="") |
450 |
return $Error; |
453 |
return $Error; |
451 |
|
454 |
|
- |
|
455 |
// Find <<SvnInfo>> |
- |
|
456 |
if (!preg_match("/( *)(<<SvnInfo>>)/i",$FileContent,$Matches)) |
- |
|
457 |
{ |
- |
|
458 |
unset($FileContent); |
- |
|
459 |
return "Missing <<SvnInfo>> in template file"; |
- |
|
460 |
} |
- |
|
461 |
$Indent=$Matches[1]; |
- |
|
462 |
|
- |
|
463 |
// Read Svn Info file |
- |
|
464 |
$Error=MyReadFileString($SvnInfoFileName, $SvnInfoFile); |
- |
|
465 |
if ($Error!="") |
- |
|
466 |
{ |
- |
|
467 |
// We do not have Svn Info File |
- |
|
468 |
$SvnInfoFile=""; |
- |
|
469 |
} |
- |
|
470 |
else |
- |
|
471 |
{ |
- |
|
472 |
// We have Svn Info File |
- |
|
473 |
$SvnInfoFile=preg_replace("/^((?:URL|Repository|Last)[^:]*):(.*$)|^.*$/im","<tr><td>$1</td><td>$2</td></tr>",$SvnInfoFile); |
- |
|
474 |
$SvnInfoFile=preg_replace("~<tr><td></td><td></td></tr>\n~i","",$SvnInfoFile); |
- |
|
475 |
$SvnInfoFile="<tr><th colspan=\"2\">Subversion Info</th></tr>".$SvnInfoFile; |
- |
|
476 |
} |
- |
|
477 |
|
- |
|
478 |
// Put Svn Info into HTML template |
- |
|
479 |
$FileContent=str_ireplace("<<SvnInfo>>", $SvnInfoFile, $FileContent); |
- |
|
480 |
#print $FileContent; |
- |
|
481 |
|
- |
|
482 |
|
452 |
// Find <<WordList>> |
483 |
// Find <<WordList>> |
453 |
if (!preg_match("/( *)(<<WordList>>)/i",$FileContent,$Matches)) |
484 |
if (!preg_match("/( *)(<<WordList>>)/i",$FileContent,$Matches)) |
454 |
{ |
485 |
{ |
455 |
unset($FileContent); |
486 |
unset($FileContent); |
456 |
return "Missing <<WordList>> in template file"; |
487 |
return "Missing <<WordList>> in template file"; |
Line 485... |
Line 516... |
485 |
$WordListHTML[]="</table>"; |
516 |
$WordListHTML[]="</table>"; |
486 |
|
517 |
|
487 |
// Indent and Concatenate lines |
518 |
// Indent and Concatenate lines |
488 |
foreach($WordListHTML as $Key => $Value) |
519 |
foreach($WordListHTML as $Key => $Value) |
489 |
{ |
520 |
{ |
- |
|
521 |
if ($Key>0) |
490 |
$WordListHTML[$Key]=$Indent.preg_replace("/\n/","<br>",$Value); |
522 |
$WordListHTML[$Key]=$Indent.preg_replace("/\n/","<br>",$Value); |
491 |
} |
523 |
} |
492 |
$WordListHTML=implode("\n",$WordListHTML); |
524 |
$WordListHTML=implode("\n",$WordListHTML); |
493 |
|
525 |
|
494 |
// Put it into HTML template |
526 |
// Put it into HTML template |
Line 584... |
Line 616... |
584 |
|
616 |
|
585 |
// Destilate Labels and Words |
617 |
// Destilate Labels and Words |
586 |
Error(CreateWordList($CFG["SourceDir"], $LabelList, $WordList)); |
618 |
Error(CreateWordList($CFG["SourceDir"], $LabelList, $WordList)); |
587 |
|
619 |
|
588 |
// Create HTML WordList |
620 |
// Create HTML WordList |
- |
|
621 |
Error(GenerateWordList( |
- |
|
622 |
$CFG["TemplateDir"], |
589 |
Error(GenerateWordList($CFG["TemplateDir"], $CFG["DestinationDir"], $LabelList, $WordList)); |
623 |
$CFG["SourceDir"].$CFG["SvnInfoFileName"], |
- |
|
624 |
$CFG["DestinationDir"], |
- |
|
625 |
$LabelList, $WordList)); |
590 |
|
626 |
|
591 |
// Copy ASM files and convert them into HTML |
627 |
// Copy ASM files and convert them into HTML |
592 |
Error(GenerateAsmFiles($CFG["TemplateDir"], $CFG["SourceDir"], $SourceAsmFiles, $CFG["DestinationDir"])); |
628 |
Error(GenerateAsmFiles($CFG["TemplateDir"], $CFG["SourceDir"], $SourceAsmFiles, $CFG["DestinationDir"])); |
593 |
|
629 |
|
594 |
// Finish |
630 |
// Finish |
595 |
print "O.K.\n"; |
631 |
print "O.K.\n"; |
596 |
return |
632 |
return |
597 |
|
633 |
|
598 |
// Zpracování readme autora + verze |
634 |
// Zpracování readme autora |
- |
|
635 |
// Vyplatilo by se udělat samostatny formatovaci a nahrazovaci mechanizmus |
599 |
// Zpracování templejtů do samostatného podprogramu (vyřešit indent...) |
636 |
// Zpracování templejtů do samostatného podprogramu (vyřešit indent...) |
600 |
// tím se vyřeší i en/cs verze Asm souboru |
637 |
// tím se vyřeší i en/cs verze Asm souboru |
601 |
// Generovat log do souboru místo printu (zvážit) oddělit chyby a varování |
638 |
// Generovat log do souboru místo printu (zvážit) oddělit chyby a varování |
602 |
// Vyčistit cílový adresář |
639 |
// Vyčistit cílový adresář |
603 |
// Process all FORTH files |
640 |
// Process all FORTH files |