source: ProjectBuilder/pbconf/devel/website/pbinit@ 1263

Last change on this file since 1263 was 1263, checked in by Bruno Cornec, 13 years ago
  • list of docs for .1, .3, .5 entries are now dynamically generated
  • Property svn:executable set to *
File size: 3.5 KB
RevLine 
[1044]1#!/usr/bin/perl -w
2#
3# Init script for pb's website
4#
5
6# Export documentation to generate what is needed
7use ProjectBuilder::Base;
8use ProjectBuilder::Filter;
9use ProjectBuilder::CMS;
10use ProjectBuilder::Env;
11use File::Basename;
[1118]12use File::Copy;
[1044]13use Pod::Man;
14use Pod::Html qw(pod2html);
15use Pod::Text;
[1118]16use Data::Dumper;
[1044]17
[1118]18my @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
32my @DOC = (
33 "LabProject-Builder.org.odt",
34 "LabProject-Builder.org.pdf",
35 "One_Source_for_Multiple_Platforms_Sol_Brief_final.pdf"
36);
37
[1044]38pb_temp_init();
39pb_mkdir_p("docs");
40pb_mkdir_p("tmp");
[1204]41my $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'} = "";
[1044]52
53# Action needs to be pbinit
[1227]54my ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) = pb_env_init($pb->{'proj'},undef,"pbinit");
[1044]55my ($scheme,$uri) = pb_cms_init(undef);
56
57# export doc
[1118]58foreach my $f (@DOC) {
[1044]59 pb_cms_export($uri,"$ENV{'PBDIR'}/pb-doc/$f","docs");
60}
61# using pod from files
[1118]62foreach my $f (@MAN) {
[1044]63 pb_cms_export($uri,"$ENV{'PBDIR'}/$f","tmp");
64}
65
66# call filter_file here
[1227]67my $ptr = pb_get_filters($pb->{'pkg'});
[1263]68open(MANHTML,"> docs/pb_man_pages.html") || die "Unable to open docs/pb_man_pages.html";
69print MANHTML " <ul>\n";
[1118]70chdir("tmp");
71foreach my $f (<*>) {
[1263]72 print MANHTML " <li>$f</li>\n";
73 print MANHTML " <ul>\n";
[1118]74 pb_log(0,"\nProcessing $f\n");
[1044]75 pb_log(0,"==========================\n");
[1204]76 pb_filter_file_inplace($ptr,$f,$pb);
[1044]77 my $ext = 1;
78 if ($f =~ /\.pod/) {
79 $ext = 5;
80 } elsif ($f =~ /\.pm/) {
81 $ext = 3;
82 }
83 # generate man pages
84 pb_log(0,"Generating man pages\n");
85 my $parser = Pod::Man->new (release => $VERSION, section => $ext);
86 $parser->parse_from_file ("$f", "$f.$ext");
87 # generate html pages
88 pb_log(0,"Generating HTML pages\n");
89 pod2html(#"--podpath=lib:ext:pod:vms",
90 "--htmlroot=/docs",
91 "--libpods=perlfunc:perlguts:perlvar:perlrun:perlop",
92 "--recurse",
93 "--header",
94 "--title=$f man page",
95 "--backlink='Back to Top'",
96 "--infile=$f",
[1118]97 "--outfile=../docs/$f.$ext.html");
[1263]98 print MANHTML " <li>A <a href=\"/docs/$f.$ext.html\" target=\"_blank\">HTML</a></li>\n";
[1044]99 # generate text pages
100 pb_log(0,"Generating text pages\n");
101 $parser = Pod::Text->new (sentence => 0, width => 78);
[1118]102 $parser->parse_from_file ("$f","../docs/$f.$ext.txt");
[1263]103 print MANHTML " <li>A <a href=\"/docs/$f.$ext.txt\" target=\"_blank\">Text</a></li>\n";
[1118]104 # generate ps pages
105 #system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps");
[1120]106 # Use noredir here because is doesn't redirect to the right place without
107 pb_system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps","Generating Postscript pages","noredir");
[1263]108 print MANHTML " <li>A <a href=\"/docs/$f.$ext.ps\" target=\"_blank\">PostScript</a></li>\n";
[1118]109 # generate pdf pages
110 pb_system("ps2pdf ../docs/$f.$ext.ps","Generating PDF pages");
111 move("$f.$ext.pdf","../docs/$f.$ext.pdf");
[1263]112 print MANHTML " <li>A <a href=\"/docs/$f.$ext.pdf\" target=\"_blank\">PDF</a></li>\n";
113 print MANHTML " </ul>\n";
[1044]114}
[1263]115print MANHTML " </ul>\n";
116close(MANHTML);
[1118]117chdir("..");
118pb_rm_rf("tmp");
Note: See TracBrowser for help on using the repository browser.