mandir2html
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #!/usr/bin/perl
  2. #
  3. # This program converts a directory of man pages into HTML format.
  4. #
  5. # Title:          mandir2html
  6. # Version:        1.0
  7. # Written by:     Alex Burger
  8. # Date:           March 1st, 2004
  9. # Last modified:  March 19th, 2004
  10. #
  11. # Requirements:
  12. #
  13. # -man 
  14. # -man2html3.0.1 (http://search.cpan.org/~ehood/man2html3.0.1/)
  15. # -tidy (http://tidy.sourceforge.net/)
  16. #
  17. # Usage:
  18. #
  19. # Create a temporary directory and copy all the man files to the
  20. # folder while retaining the man(x) directory structure.  Example:
  21. #
  22. # /tmp/net-snmp/man/man1
  23. # /tmp/net-snmp/man/man2
  24. # .
  25. # /tmp/net-snmp/man/man8
  26. # /tmp/net-snmp/man/man9
  27. # Some applications can install the man files using:
  28. #
  29. # cd (source folder)/man
  30. # make install prefix=/tmp/net-snmp
  31. #  
  32. ################################################################
  33. # Options
  34. # Location of man pages to parse
  35. # Below this directory should be the folders man1 to man9.
  36. $man_dir = "/tmp/net-snmp/man/";
  37. # Output folder to create the HTML files
  38. $man_dir_html = "/tmp/net-snmp/html/";
  39. # man2html Perl script location
  40. $man2html = "man2html.pl";
  41. # tidy location
  42. $tidy = "tidy";
  43. # Folder separator
  44. $separator = '-';
  45. ################################################################
  46. # Chop off trailing slash of $man_dir
  47. if ($man_dir =~ //$/) {
  48.   chop $man_dir;
  49. }
  50. # Chop off trailing slash of $man_dir_html
  51. if ($man_dir_html =~ //$/) {
  52.   chop $man_dir_html;
  53. }
  54. mkdir "$man_dir_html";
  55. if ($separator eq '/') {
  56.   # Make output directory structure
  57.   mkdir "$man_dir_html/man1";
  58.   mkdir "$man_dir_html/man2";
  59.   mkdir "$man_dir_html/man3";
  60.   mkdir "$man_dir_html/man4";
  61.   mkdir "$man_dir_html/man5";
  62.   mkdir "$man_dir_html/man6";
  63.   mkdir "$man_dir_html/man7";
  64.   mkdir "$man_dir_html/man8";
  65.   mkdir "$man_dir_html/man9";
  66. }
  67. # Get list of man files
  68. @files = `find $man_dir`;
  69. # Convert each man file
  70. foreach my $file (@files)
  71. {
  72.   chomp $file;
  73.   # Put man section number into $1, and man page name into $2
  74.   if ($file =~ /$man_dir/(mand+)/(.*)/)
  75.   {
  76.    #print "$1-$2n";
  77.    if ($separator eq '/') {
  78.      $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";
  79.    }
  80.    else {
  81.      $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";
  82.    }
  83.  
  84.    print "executing: $commandn";
  85.    system "$command";
  86.   }
  87. }