#!/usr/bin/perl -w # # Init script for pb's website # # Export documentation to generate what is needed use ProjectBuilder::Base; use ProjectBuilder::Filter; use ProjectBuilder::CMS; use ProjectBuilder::Env; use File::Basename; use File::Copy; use Pod::Man; use Pod::Html qw(pod2html); use Pod::Text; use Data::Dumper; my @MAN = ( "pb-modules/lib/ProjectBuilder/Base.pm", "pb-modules/lib/ProjectBuilder/Conf.pm", "pb-modules/lib/ProjectBuilder/Distribution.pm", "pb/lib/ProjectBuilder/Changelog.pm", "pb/lib/ProjectBuilder/CMS.pm", "pb/lib/ProjectBuilder/Env.pm", "pb/lib/ProjectBuilder/Filter.pm", "pb/bin/pb", "rpmbootstrap/bin/rpmbootstrap", "pb-modules/bin/pbdistrocheck", "pb-modules/etc/pb.conf.pod", ); my @DOC = ( "LabProject-Builder.org.odt", "LabProject-Builder.org.pdf", "One_Source_for_Multiple_Platforms_Sol_Brief_final.pdf" ); pb_temp_init(); pb_mkdir_p("docs"); pb_mkdir_p("tmp"); my $pb; $pb->{'pkg'} = "PBPKG"; $pb->{'ver'} = "PBVER"; $pb->{'tag'} = "PBTAG"; $pb->{'rev'} = "PBREV"; $pb->{'proj'} = "PBPROJ"; $pb->{'date'} = "PBDATE"; $pb->{'repo'} = "PBREPO"; $pb->{'realpkg'} = "PBREALPKG"; $pb->{'packager'} = q/PBPACKAGER/; $pb->{'chglog'} = ""; # Action needs to be pbinit my ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) = pb_env_init($pb->{'proj'},undef,"pbinit"); my ($scheme,$uri) = pb_cms_init(undef); # export doc foreach my $f (@DOC) { pb_cms_export($uri,"$ENV{'PBDIR'}/pb-doc/$f","docs"); } # using pod from files foreach my $f (@MAN) { pb_cms_export($uri,"$ENV{'PBDIR'}/$f","tmp"); } # call filter_file here my $ptr = pb_get_filters($pb->{'pkg'}); chdir("tmp"); #open(MANHTML,"> docs/pb_man_pages.html") || die "Unable to open docs/pb_man_pages.html"; foreach my $f (<*>) { pb_log(0,"\nProcessing $f\n"); pb_log(0,"==========================\n"); pb_filter_file_inplace($ptr,$f,$pb); my $ext = 1; if ($f =~ /\.pod/) { $ext = 5; } elsif ($f =~ /\.pm/) { $ext = 3; } # generate man pages pb_log(0,"Generating man pages\n"); my $parser = Pod::Man->new (release => $VERSION, section => $ext); $parser->parse_from_file ("$f", "$f.$ext"); # generate html pages pb_log(0,"Generating HTML pages\n"); pod2html(#"--podpath=lib:ext:pod:vms", "--htmlroot=/docs", "--libpods=perlfunc:perlguts:perlvar:perlrun:perlop", "--recurse", "--header", "--title=$f man page", "--backlink='Back to Top'", "--infile=$f", "--outfile=../docs/$f.$ext.html"); # generate text pages pb_log(0,"Generating text pages\n"); $parser = Pod::Text->new (sentence => 0, width => 78); $parser->parse_from_file ("$f","../docs/$f.$ext.txt"); # generate ps pages #system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps"); # Use noredir here because is doesn't redirect to the right place without pb_system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps","Generating Postscript pages","noredir"); # generate pdf pages pb_system("ps2pdf ../docs/$f.$ext.ps","Generating PDF pages"); move("$f.$ext.pdf","../docs/$f.$ext.pdf"); } chdir(".."); pb_rm_rf("tmp");