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 | foreach 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 | }
|
---|
106 | chdir("..");
|
---|
107 | pb_rm_rf("tmp");
|
---|