Annotation of embedaddon/bird/tools/progdoc, revision 1.1

1.1     ! misho       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>