Blame man/make_index.pl

Packit Service b38f0b
#!/usr/bin/perl
Packit Service b38f0b
#
Packit Service b38f0b
# Creates a .xhtml compliant index.html file
Packit Service b38f0b
#
Packit Service b38f0b
my $infile = shift @ARGV;
Packit Service b38f0b
Packit Service b38f0b
map { s/\.[0-9]$//; $pages{$_} = 1; } @ARGV;
Packit Service b38f0b
Packit Service b38f0b
open(I,$infile);
Packit Service b38f0b
$first = 1;
Packit Service b38f0b
print '

Packit Service b38f0b
Man pages
Packit Service b38f0b

Packit Service b38f0b
';
Packit Service b38f0b
Packit Service b38f0b
while () {
Packit Service b38f0b
    if (/^#\s*(.*)/) {
Packit Service b38f0b
	print "\n" if (!$first);
Packit Service b38f0b
	print "

$1

\n";
Packit Service b38f0b
        print "\n";
Packit Service b38f0b
	$first = 0;
Packit Service b38f0b
    } else {
Packit Service b38f0b
	my $name = $_;
Packit Service b38f0b
	my $title;
Packit Service b38f0b
	chomp($name);
Packit Service b38f0b
	if (!exists($pages{$name})) {
Packit Service b38f0b
	    print STDERR "$name is in $infile, but not in the rest of the args.\n";
Packit Service b38f0b
	    print STDERR "Make sure it's not listed twice in $infile!\n";
Packit Service b38f0b
	}
Packit Service b38f0b
	open(H,"$name.html");
Packit Service b38f0b
	while (<H>) {
Packit Service b38f0b
	    if (/

(.*?)<\/h1>/i) {

Packit Service b38f0b
		$title = $1;
Packit Service b38f0b
	    }
Packit Service b38f0b
            
Packit Service b38f0b
	    if (/

NAME<\/h2>(.*)/i) {

Packit Service b38f0b
                $_ = $1;
Packit Service b38f0b
Packit Service b38f0b
                # Ignore blank lines
Packit Service b38f0b
		while (/^\s*$/) {
Packit Service b38f0b
		    $_ = <H>;
Packit Service b38f0b
		}
Packit Service b38f0b
Packit Service b38f0b
                $title = $_;
Packit Service b38f0b
		chomp($title);
Packit Service b38f0b
                $title =~ s/\s*$name\s*-\s*//;
Packit Service b38f0b
Packit Service b38f0b
                # Remove any complete <> tags
Packit Service b38f0b
                $title =~ s/<.*>//i;
Packit Service b38f0b
                # Remove any half open tags               
Packit Service b38f0b
                $title =~ s/<.*//i;
Packit Service b38f0b
              }
Packit Service b38f0b
	}
Packit Service b38f0b
	close(H);
Packit Service b38f0b
	print "  \n";
Packit Service b38f0b
        print "    $name\n";
Packit Service b38f0b
        print "    $title\n";
Packit Service b38f0b
        print "  \n";
Packit Service b38f0b
        print "\n";
Packit Service b38f0b
	delete $pages{$name};
Packit Service b38f0b
    }
Packit Service b38f0b
}
Packit Service b38f0b
print '
Packit Service b38f0b

';
Packit Service b38f0b
Packit Service b38f0b
@left = keys(%pages);
Packit Service b38f0b
if ($#left > -1) {
Packit Service b38f0b
    print STDERR "missing a filing location for: ",
Packit Service b38f0b
      join(", ", @left), "\n";
Packit Service b38f0b
}