/[MITgcm]/mitgcm.org/devel/buildweb/pkg/swish-e/doc/bin/pod2hpp
ViewVC logotype

Contents of /mitgcm.org/devel/buildweb/pkg/swish-e/doc/bin/pod2hpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Fri Sep 20 19:47:29 2002 UTC (22 years, 10 months ago) by adcroft
Branch: Import, MAIN
CVS Tags: baseline, HEAD
Changes since 1.1: +0 -0 lines
Importing web-site building process.

1 #!/usr/bin/perl -w
2
3 ##########################################
4 # #
5 ## for documentation ##
6 ### execute: ###
7 #### % perldoc pod2hpp ####
8 ### to get the built-in ###
9 ## docs rendered ##
10 # #
11 ##########################################
12
13 use strict;
14 $|=1;
15
16 # I was told that it doesn't run under perl5.004 mainly because of
17 # s/XXX/YYY/ for @foo 5.005-isms. It's about a time you should upgrade
18 # to 5.005 :) 5.6 is out!!!
19 # require 5.005;
20
21 # allow to execute this script from any path and not only from the current
22 # directory
23 #use FindBin qw($Bin);
24 #use lib $Bin;
25 #use Cwd ();
26 #my $orig_dir = Cwd::cwd;
27 #chdir $Bin;
28
29 use Carp;
30
31 BEGIN{
32 my $config_file = pop @ARGV;
33 croak ("!!! Target configuration file is missing\n!!! Must specify the configuration file as a last argument\n"), exit
34 unless -e $config_file and -r _;
35 use Pod::HtmlPsPdf::Config ();
36 Pod::HtmlPsPdf::Config::set_config_file($config_file);
37 }
38
39 use Getopt::Std;
40
41 use Pod::HtmlPsPdf::RunTime ();
42 use Pod::HtmlPsPdf::Book ();
43 my $config = Pod::HtmlPsPdf::Config->new();
44
45 ######################################
46 ### Init Command Line Arguments
47 ######################################
48
49 # set defaults if no options given
50 my $verbose = 0; # verbose?
51 my $podify_items = 0; # podify pseudo-pod (s/^* /=item */)
52 my $split_html = 0; # create the splitted html version
53 my $make_tgz = 0; # create the rel and bin+src archives?
54 my $generate_ps = 0; # generate PS file
55 my $generate_pdf = 0; # generate PDF file
56 my $rebuild_all = 0; # ignore the timestamp of ../src/.last_modified
57 my $print_anchors = 0; # print the available anchors
58 my $validate_links = 0; # validate %links_to_check against %valid_anchors
59 my $makefile_mode = 0; # executed from Makefile (forces rebuild, no
60 # PS/PDF file, no tgz archive created!)
61 my $slides_mode = 0;
62
63 ######################################
64 ### Process Command Line Arguments
65 ######################################
66
67 my %opts;
68 getopts('hvtpdfalmise', \%opts);
69
70 usage() if $opts{h};
71
72 if (keys %opts) { # options given
73 $verbose = $opts{v} || 0;
74 $podify_items = $opts{i} || 0;
75 $split_html = $opts{s} || 0;
76 $make_tgz = $opts{t} || 0;
77 $generate_ps = $opts{p} || 0;
78 $generate_pdf = $opts{d} || 0;
79 $rebuild_all = $opts{f} || 0; # force
80 $print_anchors = $opts{a} || 0;
81 $validate_links = $opts{l} || 0;
82 $slides_mode = $opts{e} || 0;
83 $makefile_mode = $opts{m} || 0;
84 }
85
86 if ($makefile_mode) {
87 $verbose = 1;
88 $make_tgz = 0;
89 $generate_ps = 0;
90 $generate_pdf = 0;
91 $rebuild_all = 1;
92 $print_anchors = 0;
93 $validate_links = 0;
94 }
95
96 # in the slides mode we turn preprocessing automatically to be on
97 if ($slides_mode) {
98 $podify_items = 1;
99 }
100
101 # we need a PS version in order to create a pdf
102 $generate_ps = 1 if $generate_pdf;
103
104 # verify the ability to create PS version
105 $generate_ps = Pod::HtmlPsPdf::RunTime::can_create_ps if $generate_ps;
106
107 # verify the ability to create PDF version
108 $generate_pdf = Pod::HtmlPsPdf::RunTime::can_create_pdf if $generate_pdf;
109
110 # we cannot create PDF if we cannot generate PS
111 $generate_pdf = 0 unless $generate_ps;
112
113 # if there is no toc_file we cannot produce correct internal links,
114 # therefore we force this option.
115 my $toc_file = $config->get_param('toc_file');
116 $rebuild_all = 1,
117 print "!!! No $toc_file was found, forcing complete rebuild\n"
118 unless -e $toc_file or $rebuild_all;
119
120 my %options =
121 (
122 verbose => $verbose,
123 podify_items => $podify_items,
124 split_html => $split_html,
125 make_tgz => $make_tgz,
126 generate_ps => $generate_ps,
127 generate_pdf => $generate_pdf,
128 rebuild_all => $rebuild_all,
129 print_anchors => $print_anchors,
130 validate_links => $validate_links,
131 makefile_mode => $makefile_mode,
132 slides_mode => $slides_mode,
133 );
134
135 # make the runtime options available to other packages
136 Pod::HtmlPsPdf::RunTime::set_runtime_options(\%options);
137
138 ######################################
139 ### Create the Book
140 ######################################
141
142 # create the book object
143 my $book = Pod::HtmlPsPdf::Book->new();
144
145 # process the source files and convert them into html files write
146 # two copies of the files -- one as normal html using the html
147 # teplates, and the other again in html but using the PS templates,
148 # since generally these don't need TOC and all the other stuff,
149 # html2ps generates this for us automatically.
150 $book->create_html_version();
151
152 # Validate pod's L<> links
153 $book->validate_links if $validate_links;
154
155 # when there are broken links reported by validate_links() we need
156 # to know the correct links as rendered by pod2html converter. This
157 # will print all the available achors.
158 $book->print_anchors if $print_anchors;
159
160 # generate the PS version of the book
161 $book->create_ps_version if $generate_ps;
162
163 # generate the PDF version of the book
164 $book->create_pdf_version if $generate_pdf;
165
166 # generate the Split HTML version of the book
167 $book->create_split_html_version if $split_html;
168
169 # build the dist
170 $book->make_tar_gz() if $make_tgz;
171
172 # do the cleanup chores
173 $book->cleanup();
174
175 # go back to where you have from
176 #chdir $orig_dir;
177
178 ######################################
179 ### Subs
180 ######################################
181
182 ##########
183 sub usage{
184
185 print <<USAGE;
186 pod2hpp [options] config_file_location
187
188 Options:
189
190 -h this help
191 -v verbose
192 -i podify pseudo-pod items (s/^* /=item */)
193 -s create the splitted html version
194 -t create tar.gz
195 -p generate PS file
196 -d generate PDF file
197 -f force a complete rebuild
198 -a print available hypertext anchors
199 -l do hypertext links validation
200 -e slides mode (for presentations)
201 -m executed from Makefile (forces rebuild,
202 no PS/PDF file,
203 no tgz archive!)
204
205 USAGE
206
207 exit;
208
209 } # end of sub usage
210
211
212
213 __END__
214
215 =head1 NAME
216
217 pod2hpp - a script that does documentation projects building in HTML, PS and PDF formats
218
219 =head1 SYNOPSIS
220
221 pod2hpp [options] configuration_file_location
222
223 =head1 DESCRIPTION
224
225 See C<Pod::HtmlPsPdf>
226
227 =head1 AUTHOR
228
229 Stas Bekman <stas@stason.org>
230
231 =head1 COPYRIGHT
232
233 This program is distributed under the Artistic License, like the Perl
234 itself.
235
236 =cut
237
238
239 =cut

  ViewVC Help
Powered by ViewVC 1.1.22