Statistics
| Branch: | Revision:

iof-bird-daemon / tools / progdoc @ 42b3daa0

History | View | Annotate | Download (1.07 KB)

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
}