blob: 23b66d5390e5a5cd03e09d334bbd55783911694a [file] [log] [blame]
#!/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