| 1 | #!/usr/bin/perl -w |
|---|
| 2 | # |
|---|
| 3 | # Init script for pb's website |
|---|
| 4 | # |
|---|
| 5 | |
|---|
| 6 | # Export documentation to generate what is needed |
|---|
| 7 | use ProjectBuilder::Base; |
|---|
| 8 | use ProjectBuilder::Filter; |
|---|
| 9 | use ProjectBuilder::CMS; |
|---|
| 10 | use ProjectBuilder::Env; |
|---|
| 11 | use File::Basename; |
|---|
| 12 | use File::Copy; |
|---|
| 13 | use Pod::Man; |
|---|
| 14 | use Pod::Html qw(pod2html); |
|---|
| 15 | use Pod::Text; |
|---|
| 16 | use Data::Dumper; |
|---|
| 17 | |
|---|
| 18 | my @MAN = ( |
|---|
| 19 | "pb-modules/lib/ProjectBuilder/Base.pm", |
|---|
| 20 | "pb-modules/lib/ProjectBuilder/Conf.pm", |
|---|
| 21 | "pb-modules/lib/ProjectBuilder/Distribution.pm", |
|---|
| 22 | "pb/lib/ProjectBuilder/Changelog.pm", |
|---|
| 23 | "pb/lib/ProjectBuilder/CMS.pm", |
|---|
| 24 | "pb/lib/ProjectBuilder/Env.pm", |
|---|
| 25 | "pb/lib/ProjectBuilder/Filter.pm", |
|---|
| 26 | "pb/bin/pb", |
|---|
| 27 | "rpmbootstrap/bin/rpmbootstrap", |
|---|
| 28 | "pb-modules/bin/pbdistrocheck", |
|---|
| 29 | "pb-modules/etc/pb.conf.pod", |
|---|
| 30 | ); |
|---|
| 31 | |
|---|
| 32 | my @DOC = ( |
|---|
| 33 | "LabProject-Builder.org.odt", |
|---|
| 34 | "LabProject-Builder.org.pdf", |
|---|
| 35 | "One_Source_for_Multiple_Platforms_Sol_Brief_final.pdf" |
|---|
| 36 | ); |
|---|
| 37 | |
|---|
| 38 | pb_temp_init(); |
|---|
| 39 | pb_mkdir_p("docs"); |
|---|
| 40 | pb_mkdir_p("tmp"); |
|---|
| 41 | my $pb; |
|---|
| 42 | $pb->{'pkg'} = "PBPKG"; |
|---|
| 43 | $pb->{'ver'} = "PBVER"; |
|---|
| 44 | $pb->{'tag'} = "PBTAG"; |
|---|
| 45 | $pb->{'rev'} = "PBREV"; |
|---|
| 46 | $pb->{'proj'} = "PBPROJ"; |
|---|
| 47 | $pb->{'date'} = "PBDATE"; |
|---|
| 48 | $pb->{'repo'} = "PBREPO"; |
|---|
| 49 | $pb->{'realpkg'} = "PBREALPKG"; |
|---|
| 50 | $pb->{'packager'} = q/PBPACKAGER/; |
|---|
| 51 | $pb->{'chglog'} = ""; |
|---|
| 52 | |
|---|
| 53 | # Action needs to be pbinit |
|---|
| 54 | my ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) = pb_env_init($pb->{'proj'},undef,"pbinit"); |
|---|
| 55 | my ($scheme,$uri) = pb_cms_init(undef); |
|---|
| 56 | |
|---|
| 57 | # export doc |
|---|
| 58 | foreach my $f (@DOC) { |
|---|
| 59 | pb_cms_export($uri,"$ENV{'PBDIR'}/pb-doc/$f","docs"); |
|---|
| 60 | } |
|---|
| 61 | # using pod from files |
|---|
| 62 | foreach my $f (@MAN) { |
|---|
| 63 | pb_cms_export($uri,"$ENV{'PBDIR'}/$f","tmp"); |
|---|
| 64 | } |
|---|
| 65 | |
|---|
| 66 | # call filter_file here |
|---|
| 67 | my $ptr = pb_get_filters($pb->{'pkg'}); |
|---|
| 68 | chdir("tmp"); |
|---|
| 69 | #open(MANHTML,"> docs/pb_man_pages.html") || die "Unable to open docs/pb_man_pages.html"; |
|---|
| 70 | foreach my $f (<*>) { |
|---|
| 71 | pb_log(0,"\nProcessing $f\n"); |
|---|
| 72 | pb_log(0,"==========================\n"); |
|---|
| 73 | pb_filter_file_inplace($ptr,$f,$pb); |
|---|
| 74 | my $ext = 1; |
|---|
| 75 | if ($f =~ /\.pod/) { |
|---|
| 76 | $ext = 5; |
|---|
| 77 | } elsif ($f =~ /\.pm/) { |
|---|
| 78 | $ext = 3; |
|---|
| 79 | } |
|---|
| 80 | # generate man pages |
|---|
| 81 | pb_log(0,"Generating man pages\n"); |
|---|
| 82 | my $parser = Pod::Man->new (release => $VERSION, section => $ext); |
|---|
| 83 | $parser->parse_from_file ("$f", "$f.$ext"); |
|---|
| 84 | # generate html pages |
|---|
| 85 | pb_log(0,"Generating HTML pages\n"); |
|---|
| 86 | pod2html(#"--podpath=lib:ext:pod:vms", |
|---|
| 87 | "--htmlroot=/docs", |
|---|
| 88 | "--libpods=perlfunc:perlguts:perlvar:perlrun:perlop", |
|---|
| 89 | "--recurse", |
|---|
| 90 | "--header", |
|---|
| 91 | "--title=$f man page", |
|---|
| 92 | "--backlink='Back to Top'", |
|---|
| 93 | "--infile=$f", |
|---|
| 94 | "--outfile=../docs/$f.$ext.html"); |
|---|
| 95 | # generate text pages |
|---|
| 96 | pb_log(0,"Generating text pages\n"); |
|---|
| 97 | $parser = Pod::Text->new (sentence => 0, width => 78); |
|---|
| 98 | $parser->parse_from_file ("$f","../docs/$f.$ext.txt"); |
|---|
| 99 | # generate ps pages |
|---|
| 100 | #system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps"); |
|---|
| 101 | # Use noredir here because is doesn't redirect to the right place without |
|---|
| 102 | pb_system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps","Generating Postscript pages","noredir"); |
|---|
| 103 | # generate pdf pages |
|---|
| 104 | pb_system("ps2pdf ../docs/$f.$ext.ps","Generating PDF pages"); |
|---|
| 105 | move("$f.$ext.pdf","../docs/$f.$ext.pdf"); |
|---|
| 106 | |
|---|
| 107 | } |
|---|
| 108 | chdir(".."); |
|---|
| 109 | pb_rm_rf("tmp"); |
|---|