123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/perl -w
- # Bart Garst - 7/1/2004
- # additional comments at bottom of file
- #############################################################################
- # Copyright (c) 2001-2005 CrystalClear Software, Inc. #
- # Subject to the Boost Software License, Version 1.0. #
- # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) #
- #############################################################################
- use strict;
- # key-value of file name and id attribute
- # if the attributes are changed here it would be a good idea to
- # also change the links in doxy.xml
- my %files = (
- 'date_time_autodoc.boostbook' => 'date_time_reference',
- 'gregorian_autodoc.boostbook' => 'gregorian_reference',
- 'posix_time_autodoc.boostbook' => 'posix_time_reference',
- 'local_time_autodoc.boostbook' => 'local_time_reference'
- );
- foreach my $key(keys %files) {
- rewrite_tags($key, $files{$key});
- }
- exit;
- ### subroutines ###
- # separate words at underscores and capitalize first letter of each
- sub make_title {
- my $a = shift || die "Missing required parameter to make_title()\n";
- my @wrds = split(/_/, $a); # remove underscores
- foreach(@wrds){
- $_ = "\u$_"; # capitalize first letter
- }
- $a = join(" ",@wrds);
- return $a;
- }
- sub rewrite_tags {
- my $filename = shift || die "Error: argument 1 missing to sub $!";
- my $id_tag = shift || die "Error: argument 2 missing to sub $!";
- my ($line, @new_file, $title, $processed);
-
- $processed = 1; # has this file already been processed?
-
- print "...processing $filename...\n";
- # prepare a title from id attribute
- $title = make_title($id_tag);
-
- # open & read file and change appropriate line
- open(INP, "<$filename") || die "File open (read) failed: $!";
- while($line = <INP>){
- if($line =~ /<library-reference>/) {
- push(@new_file, "<section id=\"$id_tag\">\n");
- push(@new_file, "<title>$title</title>\n");
- $processed = 0; # file had not been previously processed
- }
- elsif($line =~ /<\/library-reference>/) {
- push(@new_file, "</section>\n");
- }
- else{
- push(@new_file, $line);
- }
- }
- close(INP);
-
- # open & write new file w/ same name
- open(OTP, ">$filename") || die "File open (write) failed: $!";
- print OTP shift(@new_file);
- if($processed == 0){ # has not been previously processed so add license
- my($day, $year) = (localtime)[3,5];
- my $month = (qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[(localtime)[4]];
- $year += 1900; # adjust year
- print OTP <<EO_LIC;
- <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
- Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
- -->
- <!-- date source directory processed: $year-$month-$day -->
- EO_LIC
- }
- foreach(@new_file){
- print OTP "$_";
- }
- close(OTP);
- }
- __END__
- Rewrites the library-reference tagset as a section tagset and adds
- a title to the generated *.boostbook files. It will NOT update a
- file that has already been rewritten.
- Change log
- 7/19/2004
- - rewrite library-reference tags as section tags and add title tags
- - renamed fix_id sub to rewrite_tags.
- 8/31/2004
- - added license to this file and writes license to boostbook files
- 11/01/2004
- - fixed minor bug that placed multiple license statements in files if
- input file had already had it's tags fixed.
- - added a processed date to the license statement
- 12/02/2005
- - added local_time_autodoc.boostbook
- - updated copyrights to 2005
|