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

Last change on this file since 1634 was 1634, checked in by Bruno Cornec, 12 years ago

r4921@localhost: bruno | 2012-06-05 03:48:20 +0200

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