X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=installhtml;h=4bbaba9f0de157ab17b90b6e8fe5c76f31840140;hb=3e9bebd5e3537348bf6b698defecf0de0d19dde7;hp=c268f54b3617f71c3b4c13ac16345aff1737e4fd;hpb=1d7c184104c076988718a01b77c8706aae05b092;p=p5sagit%2Fp5-mst-13.2.git diff --git a/installhtml b/installhtml index c268f54..4bbaba9 100755 --- a/installhtml +++ b/installhtml @@ -1,9 +1,8 @@ -#!./perl -w +#!./perl -Ilib -w -# This file should really be a extracted from a .PL - -use lib 'lib'; # use source library if present +# This file should really be extracted from a .PL file +use strict; use Config; # for config options in the makefile use Getopt::Long; # for command-line parsing use Cwd; @@ -110,6 +109,8 @@ Chris Hall Ehallc@cs.colorado.eduE =cut +my $usage; + $usage =<:...: --podroot= --htmldir= --htmlroot= --norecurse --recurse @@ -142,6 +143,9 @@ Usage: $0 --help --podpath=:...: --podroot= END_OF_USAGE +my (@libpods, @podpath, $podroot, $htmldir, $htmlroot, $recurse, @splithead, + @splititem, $splitpod, $verbose, $pod2html); + @libpods = (); @podpath = ( "." ); # colon-separated list of directories containing .pod # and .pm files to be converted. @@ -159,8 +163,16 @@ $pod2html = "pod/pod2html"; usage("") unless @ARGV; +# Overcome shell's p1,..,p8 limitation. +# See vms/descrip_mms.template -> descrip.mms for invokation. +if ( $^O eq 'VMS' ) { @ARGV = split(/\s+/,$ARGV[0]); } + +use vars qw($opt_htmldir $opt_htmlroot $opt_podroot $opt_splitpod + $opt_verbose $opt_help $opt_podpath $opt_splithead $opt_splititem + $opt_libpods $opt_recurse); + # parse the command-line -$result = GetOptions( qw( +my $result = GetOptions( qw( help podpath=s podroot=s @@ -192,8 +204,8 @@ $splitpod = "$podroot/pod" unless $splitpod; # ignored in the conversion process. these are files that have been # process by splititem or splithead and should not be converted as a # result. -@ignore = (); - +my @ignore = (); +my @splitdirs; # split pods. its important to do this before convert ANY pods because # it may effect some of the links @@ -205,25 +217,25 @@ split_on_item($podroot, \@splitdirs, \@ignore, @splititem); # convert the pod pages found in @poddirs #warn "converting files\n" if $verbose; #warn "\@ignore\t= @ignore\n" if $verbose; -foreach $dir (@podpath) { +foreach my $dir (@podpath) { installdir($dir, $recurse, $podroot, \@splitdirs, \@ignore); } # now go through and create master indices for each pod we split -foreach $dir (@splititem) { +foreach my $dir (@splititem) { print "creating index $htmldir/$dir.html\n" if $verbose; create_index("$htmldir/$dir.html", "$htmldir/$dir"); } -foreach $dir (@splithead) { +foreach my $dir (@splithead) { $dir .= ".pod" unless $dir =~ /(\.pod|\.pm)$/; # let pod2html create the file runpod2html($dir, 1); # now go through and truncate after the index $dir =~ /^(.*?)(\.pod|\.pm)?$/sm; - $file = "$htmldir/$1"; + my $file = "$htmldir/$1"; print "creating index $file.html\n" if $verbose; # read in everything until what would have been the first =head @@ -231,7 +243,7 @@ foreach $dir (@splithead) { open(H, "<$file.html") || die "$0: error opening $file.html for input: $!\n"; $/ = ""; - @data = (); + my @data = (); while () { last if /NAME=/; $_ =~ s{HREF="#(.*)">}{ @@ -247,7 +259,7 @@ foreach $dir (@splithead) { # now rewrite the file open(H, ">$file.html") || die "$0: error opening $file.html for output: $!\n"; - print H "@data\n"; + print H "@data", "\n"; close(H); } @@ -318,6 +330,7 @@ sub create_index { close(IN); # pull out the NAME section + my $name; ($name) = grep(/NAME=/, @filedata); ($lcp1,$lcp2) = ($name =~ m,/H1>\s(\S+)\s[\s-]*(.*?)\s*$,sm); if (defined $lcp1 and $lcp1 eq '

') { # Uninteresting. Try again. @@ -379,7 +392,7 @@ sub split_on_item { print "splitting files by item.\n" if $verbose && $#splititem >= 0; $pwd = getcwd(); my $splitter = absolute_path($pwd, "$splitpod/splitpod"); - foreach $pod (@splititem) { + foreach my $pod (@splititem) { # figure out the directory to split into $pod =~ s,^([^/]*)$,/$1,; $pod =~ m,(.*?)/(.*?)(\.pod)?$,; @@ -439,7 +452,7 @@ sub splitpod { # create list of =head[1-6] sections so that we can rewrite # L<> links as necessary. - %heads = (); + my %heads = (); foreach $i (0..$#poddata) { $heads{htmlize($1)} = 1 if $poddata[$i] =~ /=head[1-6]\s+(.*)/; } @@ -447,7 +460,7 @@ sub splitpod { # create a directory of a similar name and store all the # files in there $pod =~ s,.*/(.*),$1,; # get the last part of the name - $dir = $pod; + my $dir = $pod; $dir =~ s/\.pod//g; push(@$splitdirs, "$poddir/$dir"); mkdir("$poddir/$dir", 0755) || @@ -534,7 +547,7 @@ sub installdir { } # install all the pods we found - foreach $pod (@podlist) { + foreach my $pod (@podlist) { # check if we should ignore it. next if grep($_ eq "$podroot/$pod.pod", @$ignore); @@ -548,7 +561,7 @@ sub installdir { } # install all the .pm files we found - foreach $pm (@pmlist) { + foreach my $pm (@pmlist) { # check if we should ignore it. next if grep($_ eq "$pm.pm", @ignore); @@ -588,6 +601,7 @@ sub runpod2html { "--htmlroot=$htmlroot", "--podpath=".join(":", @podpath), "--podroot=$podroot", "--netscape", + "--header", ($doindex ? "--index" : "--noindex"), "--" . ($recurse ? "" : "no") . "recurse", ($#libpods >= 0) ? "--libpods=" . join(":", @libpods) : "",