[1044] | 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;
|
---|
[1634] | 10 | use ProjectBuilder::VCS;
|
---|
[1044] | 11 | use ProjectBuilder::Env;
|
---|
| 12 | use File::Basename;
|
---|
[1118] | 13 | use File::Copy;
|
---|
[1044] | 14 | use Pod::Man;
|
---|
| 15 | use Pod::Html qw(pod2html);
|
---|
| 16 | use Pod::Text;
|
---|
[1118] | 17 | use Data::Dumper;
|
---|
[1044] | 18 |
|
---|
[1118] | 19 | my @MAN = (
|
---|
| 20 | "pb-modules/lib/ProjectBuilder/Base.pm",
|
---|
| 21 | "pb-modules/lib/ProjectBuilder/Conf.pm",
|
---|
[1860] | 22 | "pb-modules/lib/ProjectBuilder/VCS.pm",
|
---|
[1118] | 23 | "pb-modules/lib/ProjectBuilder/Distribution.pm",
|
---|
[1860] | 24 | "pb-modules/lib/ProjectBuilder/Env.pm",
|
---|
| 25 | "pb-modules/lib/ProjectBuilder/VE.pm",
|
---|
[1118] | 26 | "pb/lib/ProjectBuilder/Changelog.pm",
|
---|
| 27 | "pb/lib/ProjectBuilder/CMS.pm",
|
---|
| 28 | "pb/lib/ProjectBuilder/Filter.pm",
|
---|
| 29 | "pb/bin/pb",
|
---|
| 30 | "rpmbootstrap/bin/rpmbootstrap",
|
---|
| 31 | "pb-modules/bin/pbdistrocheck",
|
---|
[1860] | 32 | "pb-modules/bin/pbdistrogetparam",
|
---|
[1118] | 33 | "pb-modules/etc/pb.conf.pod",
|
---|
| 34 | );
|
---|
| 35 |
|
---|
| 36 | my @DOC = (
|
---|
| 37 | "LabProject-Builder.org.odt",
|
---|
| 38 | "LabProject-Builder.org.pdf",
|
---|
| 39 | "One_Source_for_Multiple_Platforms_Sol_Brief_final.pdf"
|
---|
| 40 | );
|
---|
| 41 |
|
---|
[1044] | 42 | pb_temp_init();
|
---|
| 43 | pb_mkdir_p("docs");
|
---|
| 44 | pb_mkdir_p("tmp");
|
---|
[1204] | 45 | my $pb;
|
---|
| 46 | $pb->{'pkg'} = "PBPKG";
|
---|
| 47 | $pb->{'ver'} = "PBVER";
|
---|
| 48 | $pb->{'tag'} = "PBTAG";
|
---|
| 49 | $pb->{'rev'} = "PBREV";
|
---|
| 50 | $pb->{'proj'} = "PBPROJ";
|
---|
| 51 | $pb->{'date'} = "PBDATE";
|
---|
| 52 | $pb->{'repo'} = "PBREPO";
|
---|
[1860] | 53 | $pb{'extdir'} = "PBEXTDIR";
|
---|
[1204] | 54 | $pb->{'realpkg'} = "PBREALPKG";
|
---|
[1044] | 55 |
|
---|
| 56 | # Action needs to be pbinit
|
---|
[1227] | 57 | my ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) = pb_env_init($pb->{'proj'},undef,"pbinit");
|
---|
[1044] | 58 | my ($scheme,$uri) = pb_cms_init(undef);
|
---|
| 59 |
|
---|
| 60 | # export doc
|
---|
[1118] | 61 | foreach my $f (@DOC) {
|
---|
[1634] | 62 | pb_vcs_export($uri,"$ENV{'PBDIR'}/pb-doc/$f","docs");
|
---|
[1044] | 63 | }
|
---|
| 64 | # using pod from files
|
---|
[1118] | 65 | foreach my $f (@MAN) {
|
---|
[1634] | 66 | pb_vcs_export($uri,"$ENV{'PBDIR'}/$f","tmp");
|
---|
[1044] | 67 | }
|
---|
| 68 |
|
---|
| 69 | # call filter_file here
|
---|
[1227] | 70 | my $ptr = pb_get_filters($pb->{'pkg'});
|
---|
[1263] | 71 | open(MANHTML,"> docs/pb_man_pages.html") || die "Unable to open docs/pb_man_pages.html";
|
---|
| 72 | print MANHTML " <ul>\n";
|
---|
[1118] | 73 | chdir("tmp");
|
---|
| 74 | foreach my $f (<*>) {
|
---|
[1263] | 75 | print MANHTML " <li>$f</li>\n";
|
---|
| 76 | print MANHTML " <ul>\n";
|
---|
[1118] | 77 | pb_log(0,"\nProcessing $f\n");
|
---|
[1044] | 78 | pb_log(0,"==========================\n");
|
---|
[1204] | 79 | pb_filter_file_inplace($ptr,$f,$pb);
|
---|
[1044] | 80 | my $ext = 1;
|
---|
| 81 | if ($f =~ /\.pod/) {
|
---|
| 82 | $ext = 5;
|
---|
| 83 | } elsif ($f =~ /\.pm/) {
|
---|
| 84 | $ext = 3;
|
---|
| 85 | }
|
---|
| 86 | # generate man pages
|
---|
| 87 | pb_log(0,"Generating man pages\n");
|
---|
| 88 | my $parser = Pod::Man->new (release => $VERSION, section => $ext);
|
---|
| 89 | $parser->parse_from_file ("$f", "$f.$ext");
|
---|
| 90 | # generate html pages
|
---|
| 91 | pb_log(0,"Generating HTML pages\n");
|
---|
[1860] | 92 | pod2html(
|
---|
[1044] | 93 | "--htmlroot=/docs",
|
---|
| 94 | "--recurse",
|
---|
| 95 | "--header",
|
---|
| 96 | "--title=$f man page",
|
---|
[1860] | 97 | "--backlink",
|
---|
[1044] | 98 | "--infile=$f",
|
---|
[1118] | 99 | "--outfile=../docs/$f.$ext.html");
|
---|
[1263] | 100 | print MANHTML " <li>A <a href=\"/docs/$f.$ext.html\" target=\"_blank\">HTML</a></li>\n";
|
---|
[1044] | 101 | # generate text pages
|
---|
| 102 | pb_log(0,"Generating text pages\n");
|
---|
| 103 | $parser = Pod::Text->new (sentence => 0, width => 78);
|
---|
[1118] | 104 | $parser->parse_from_file ("$f","../docs/$f.$ext.txt");
|
---|
[1263] | 105 | print MANHTML " <li>A <a href=\"/docs/$f.$ext.txt\" target=\"_blank\">Text</a></li>\n";
|
---|
[1118] | 106 | # generate ps pages
|
---|
| 107 | #system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps");
|
---|
[1120] | 108 | # Use noredir here because is doesn't redirect to the right place without
|
---|
| 109 | pb_system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps","Generating Postscript pages","noredir");
|
---|
[1263] | 110 | print MANHTML " <li>A <a href=\"/docs/$f.$ext.ps\" target=\"_blank\">PostScript</a></li>\n";
|
---|
[1118] | 111 | # generate pdf pages
|
---|
| 112 | pb_system("ps2pdf ../docs/$f.$ext.ps","Generating PDF pages");
|
---|
| 113 | move("$f.$ext.pdf","../docs/$f.$ext.pdf");
|
---|
[1263] | 114 | print MANHTML " <li>A <a href=\"/docs/$f.$ext.pdf\" target=\"_blank\">PDF</a></li>\n";
|
---|
| 115 | print MANHTML " </ul>\n";
|
---|
[1044] | 116 | }
|
---|
[1263] | 117 | print MANHTML " </ul>\n";
|
---|
| 118 | close(MANHTML);
|
---|
[1118] | 119 | chdir("..");
|
---|
| 120 | pb_rm_rf("tmp");
|
---|