source: pbconf/devel/website/pbinit @ 1120

Revision 1120, 2.8 KB checked in by bruno, 2 years ago (diff)
  • remove the test on the '>' char in pb_stsem as there are too many false positive. Use "noredir" in pbinit of website instead.
  • Adds support for -t option to prepare a builbot or similar interface.
  • Property svn:executable set to *
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::Env;
11use File::Basename;
12use File::Copy;
13use Pod::Man;
14use Pod::Html qw(pod2html);
15use Pod::Text;
16use Data::Dumper;
17
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
38pb_temp_init();
39pb_mkdir_p("docs");
40pb_mkdir_p("tmp");
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'} = "";
52
53# Action needs to be pbinit
54my ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) = pb_env_init($pb{'proj'},undef,"pbinit");
55my ($scheme,$uri) = pb_cms_init(undef);
56
57# export doc
58foreach my $f (@DOC) {
59        pb_cms_export($uri,"$ENV{'PBDIR'}/pb-doc/$f","docs");
60}
61# using pod from files
62foreach my $f (@MAN) {
63        pb_cms_export($uri,"$ENV{'PBDIR'}/$f","tmp");
64}
65
66# call filter_file here
67my $ptr = pb_get_filters($pb{'pkg'});
68chdir("tmp");
69foreach my $f (<*>) {
70        pb_log(0,"\nProcessing $f\n");
71        pb_log(0,"==========================\n");
72        pb_filter_file_inplace($ptr,$f,\%pb);
73        my $ext = 1;
74        if ($f =~ /\.pod/) {
75                $ext = 5;
76        } elsif ($f =~ /\.pm/) {
77                $ext = 3;
78        }
79        # generate man pages
80        pb_log(0,"Generating man pages\n");
81        my $parser = Pod::Man->new (release => $VERSION, section => $ext);
82        $parser->parse_from_file ("$f", "$f.$ext");
83        # generate html pages
84        pb_log(0,"Generating HTML pages\n");
85        pod2html(#"--podpath=lib:ext:pod:vms",
86                        "--htmlroot=/docs",
87                        "--libpods=perlfunc:perlguts:perlvar:perlrun:perlop",
88                        "--recurse",
89                        "--header",
90                        "--title=$f man page",
91                        "--backlink='Back to Top'",
92                        "--infile=$f",
93                        "--outfile=../docs/$f.$ext.html");
94        # generate text pages
95        pb_log(0,"Generating text pages\n");
96        $parser = Pod::Text->new (sentence => 0, width => 78);
97        $parser->parse_from_file ("$f","../docs/$f.$ext.txt");
98        # generate ps pages
99        #system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps");
100        # Use noredir here because is doesn't redirect to the right place without
101        pb_system("groff -Tps -mandoc $f.$ext > ../docs/$f.$ext.ps","Generating Postscript pages","noredir");
102        # generate pdf pages
103        pb_system("ps2pdf ../docs/$f.$ext.ps","Generating PDF pages");
104        move("$f.$ext.pdf","../docs/$f.$ext.pdf");
105}
106chdir("..");
107pb_rm_rf("tmp");
Note: See TracBrowser for help on using the repository browser.