#!/usr/bin/env perl
# $NetBSD: data2html.pl,v 1.1 2007/06/09 11:33:17 dsieger Exp $
#
# Copyright (c) 1997 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by David Brownlee / absolute
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the NetBSD
# Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# Generate split & all in one information files from 'vax-data'.
# Could be adapted to other data quite easily.
# Documentation would help...
# Dynamically determining links from the text is going to get _really_ slow
# with large amounts of data, but just too convenient for now...
# use strict;
use Getopt::Std;
my(%opt);
&getopts('vq',\%opt);
$^W=1;
my(%file, $maxcol,$datafile,$start, %title2name, %title2section, %secdata);
my($head,$tail,$intro,@fhs,@sections,%name2title,%data);
$| = 1;
$maxcol = 80;
if( ! @ARGV )
{
print "Need data file\n";
exit 3 ;
}
$datafile = $ARGV[0];
$start = time;
&verbose("Read data\n");
$head = &read_file('head.txt') .
"\n\n\n";
$tail = &read_file('tail.txt');
$intro = &read_file('intro.txt');
&read_datafile($datafile);
&verbose("Output header and index to all files\n");
&output_all;
exit(0);
sub fail
{
print STDERR "\a",@_,"\n";
exit(3);
}
sub key2title
{
my($key) = @_;
$key =~ s/-/ /g;
$key =~ s/(.)/\U$1/;
$key =~ s/ / /g;
$key;
}
sub output_all
{
my($section, $loop, $elapsed);
$_ = $head;
$_ =~ s/\$title/All in one page/g;
$file{'full'} = $_;
$_ = $head;
$_ =~ s/\$title/Sections Index/g;
$file{'sections'} = $_;
$_ = $head;
$_ =~ s/\$title/Introduction/g;
$file{'index'} = $_;
$file{'index'} .= qq#