blob: 7c336490d7024374d89beadad817765c90199366 [file] [log] [blame]
#!/usr/bin/perl
#
# This program generates an HTML document containing links to man
# pages already converted to html using man2html3.0.1
# (http://search.cpan.org/~ehood/man2html3.0.1/)
#
# Written by: Alex Burger
# Date: March 2nd, 2004
#
################################################################
# Options
# Location of man pages to parse
$man_dir = "/tmp/net-snmp/html/";
$include_header = 1;
$include_footer = 1;
# Output file
$toc_file = "/tmp/net-snmp/html/toc.hhc";
#URL up to the name of the man page
$url = '';
################################################################
if ($man_dir =~ /\/$/) {
chop $man_dir;
}
@files = `find $man_dir`;
@files = sort @files;
open (FILE_OUT, ">$toc_file") || die "Could not open file $toc_file for writing. $!";
select FILE_OUT;
foreach my $file (@files)
{
chomp $file;
# Man pages
if ($file =~ /$man_dir\/man(\d+)-(.*)/)
{
push (@man_pages, "$1-$2");
}
# Perl POD files
elsif ($file =~ /$man_dir\/perl-(.*)/) {
push (@perl_files, "$1");
}
# README files
elsif ($file =~ /$man_dir\/readme-(.*)/) {
push (@readme_files, "$1");
}
}
@man_pages = sort (@man_pages);
@perl_files = sort (@perl_files);
@readme_files = sort (@readme_files);
# Divide up man pages
foreach my $man_page (@man_pages)
{
$man_page =~ /(\d+)-(.*)/;
if ($1 == 1) { push (@man1,$2); }
elsif ($1 == 2) { push (@man2,$2); }
elsif ($1 == 3) { push (@man3,$2); }
elsif ($1 == 4) { push (@man4,$2); }
elsif ($1 == 5) { push (@man5,$2); }
elsif ($1 == 6) { push (@man6,$2); }
elsif ($1 == 7) { push (@man7,$2); }
elsif ($1 == 8) { push (@man8,$2); }
elsif ($1 == 9) { push (@man9,$2); }
}
if ($include_header > 0) {
print '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' . "\n";
print '<HTML>' . "\n";
print '<HEAD>' . "\n";
print '<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">' . "\n";
print '<!-- Sitemap 1.0 -->' . "\n";
print '</HEAD><BODY>' . "\n";
print '<OBJECT type="text/site properties">' . "\n";
print ' <param name="ImageType" value="Folder">' . "\n";
print '</OBJECT>' . "\n";
print "<UL>\n";
}
print_section("Applications", "man1-",\@man1);
print_section("man2", "man2-",\@man2);
print_section("API", "man3-",\@man3);
print_section("man4", "man4-",\@man4);
print_section("Configuration", "man5-",\@man5);
print_section("man6", "man6-",\@man6);
print_section("man7", "man7-",\@man7);
print_section("Servers", "man8-",\@man8);
print_section("man9", "man9-",\@man9);
print_section("Start Here", "readme-",\@readme_files);
print_section("Perl Modules", "perl-",\@perl_files);
sub print_section{
# Section title, subfolder/prefix, array
my $section_name = shift;
my $folder = shift;
my $man = shift;
if (defined(@$man)) {
print ' <LI> <OBJECT type="text/sitemap">' . "\n";
print " <param name=\"Name\" value=\"$section_name\">\n";
print ' <param name="ImageNumber" value="1">' . "\n";
print ' </OBJECT>' . "\n";
print " <UL>\n";
foreach my $man_page (@$man)
{
my $man_page_short;
if ($man_page =~ /(.*?)\.\d+\.html/i) {
$man_page_short = $1;
}
else {
$man_page =~ /(.*?).html/i;
$man_page_short = $1;
}
print ' <LI> <OBJECT type="text/sitemap">' . "\n";
print " <param name=\"Name \"value=\"$man_page_short\">\n";
print " <param name=\"Local\" value=\"$folder$url$man_page\">\n";
print ' </OBJECT>' . "\n";
}
print " </UL>\n";
}
}
if ($include_footer > 0) {
print "</UL>\n";
print "</BODY>\n";
print "</HTML>\n";
}
close FILE_OUT;