Annotation of embedaddon/bird/tools/progdoc, revision 1.1.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>