File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / bird / tools / progdoc
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Aug 22 12:33:54 2017 UTC (6 years, 10 months ago) by misho
Branches: bird, MAIN
CVS tags: v1_6_3p0, v1_6_3, HEAD
bird 1.6.3

    1: #!/usr/bin/perl
    2: 
    3: $srcdir = $ARGV[0];
    4: 
    5: open(OUT, ">prog.sgml") || die "Cannot create output file";
    6: include("doc/prog-head.sgml");
    7: process("");
    8: include("doc/prog-foot.sgml");
    9: close OUT;
   10: exit 0;
   11: 
   12: sub include {
   13:   my $f = shift @_;
   14:   open(IN, "$srcdir/$f") || die "Unable to find $f";
   15:   while (<IN>) {
   16:     print OUT;
   17:   }
   18:   close IN;
   19: }
   20: 
   21: sub process {
   22:   my $dir = shift @_;
   23:   print "$dir/Doc\n";
   24:   open(IN, "$srcdir/$dir/Doc") || die "Unable to read $dir/Doc";
   25:   my @docfile = <IN>;
   26:   close IN;
   27:   foreach $_ (@docfile) {
   28:     chomp;
   29:     /^#/ && next;
   30:     /^([A-Z]+)\s*(.*)/ || die "Parse error: $_";
   31:     $cmd = $1;
   32:     $arg = $2;
   33:     if ($cmd eq "C") { process("$dir/$arg"); }
   34:     elsif ($cmd eq "H") {
   35:       push @stack, "H";
   36:       print OUT "<chapt>$arg\n";
   37:     } elsif ($cmd eq "S") {
   38:       print "    $arg\n";
   39:       open(DOC, "cd $srcdir/$dir ; $srcdir/doc/kernel-doc -bird $arg |") || die "Unable to start kernel-doc";
   40:       while (<DOC>) { print OUT; }
   41:       close DOC;
   42:     } elsif ($cmd eq "D") {
   43:       print "    $arg\n";
   44:       include("$dir/$arg");
   45:     } else { die "Unknown command: $cmd"; }
   46:   }
   47: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>