blob: 5435daf97e37eee40ca2b53abe58b6578616f19f [file] [log] [blame]
#!/usr/bin/perl
#
# This program converts a directory of man pages into HTML format.
#
# Title: mandir2html
# Version: 1.0
# Written by: Alex Burger
# Date: March 1st, 2004
# Last modified: March 19th, 2004
#
# Requirements:
#
# -man
# -man2html3.0.1 (http://search.cpan.org/~ehood/man2html3.0.1/)
# -tidy (http://tidy.sourceforge.net/)
#
# Usage:
#
# Create a temporary directory and copy all the man files to the
# folder while retaining the man(x) directory structure. Example:
#
# /tmp/net-snmp/man/man1
# /tmp/net-snmp/man/man2
# .
# /tmp/net-snmp/man/man8
# /tmp/net-snmp/man/man9
#
# Some applications can install the man files using:
#
# cd (source folder)/man
# make install prefix=/tmp/net-snmp
#
################################################################
# Options
# Location of man pages to parse
# Below this directory should be the folders man1 to man9.
$man_dir = "/tmp/net-snmp/share/man/";
# Output folder to create the HTML files
$man_dir_html = "/tmp/net-snmp/html/";
# man2html Perl script location
$man2html = "man2html.pl";
# tidy location
$tidy = "tidy";
# Folder separator
$separator = '-';
################################################################
# Chop off trailing slash of $man_dir
if ($man_dir =~ /\/$/) {
chop $man_dir;
}
# Chop off trailing slash of $man_dir_html
if ($man_dir_html =~ /\/$/) {
chop $man_dir_html;
}
mkdir "$man_dir_html";
if ($separator eq '/') {
# Make output directory structure
mkdir "$man_dir_html/man1";
mkdir "$man_dir_html/man2";
mkdir "$man_dir_html/man3";
mkdir "$man_dir_html/man4";
mkdir "$man_dir_html/man5";
mkdir "$man_dir_html/man6";
mkdir "$man_dir_html/man7";
mkdir "$man_dir_html/man8";
mkdir "$man_dir_html/man9";
}
# Get list of man files
@files = `find $man_dir`;
# Convert each man file
foreach my $file (@files)
{
chomp $file;
# Put man section number into $1, and man page name into $2
if ($file =~ /$man_dir\/(man\d+)\/(.*)/)
{
#print "$1-$2\n";
if ($separator eq '/') {
$command = "man $man_dir\/$1\/$2 | $man2html -topm 0 -botm 0 -cgiurl=\'..\/man\$section/\$title.\$section\$subsection.html\' | $tidy > $man_dir_html/$1/$2.html";
}
else {
$command = "man $man_dir\/$1\/$2 | $man2html -topm 0 -botm 0 -cgiurl=\'man\$section".$separator."\$title.\$section\$subsection.html\' | $tidy > $man_dir_html/$1$separator$2.html";
}
print "executing: $command\n";
system "$command";
}
}