#! /usr/bin/perl
#
# Script to generate the zmailer.conf.5 man-page from source material
# embedded in SiteConfig file
#
#use strict; no strict "subs";
use integer;
use Fcntl;
use IO::Handle;
use POSIX;
use Carp;
$fn = $ARGV[0];
# PERL 5.6+ syntax...
open SRCFILE, "<",$fn || die "Can't open file: $fn; $!";
$srcdata = '';
while (<SRCFILE>) {
$_ =~ s/^(#|\s)+//go;
$srcdata .= $_;
}
close SRCFILE;
print '\'\" t
.\" THIS FILE IS GENERATED WITH zmailer-conf-generate.pl FROM SiteConfig
.ds ]W "ZMailer 2.99"
.nr X
';
printf ".TH ZMAILER.CONF 5zm \"%s\"\n", strftime("%Y-%b-%d",localtime());
print '.SH NAME
zmailer.conf \- file format
.SH SYNOPSIS
These are generated from inline XMLishly tagged
descriptions in generated file:
.IR "SiteConfig" .
';
for (;;) {
if ($srcdata =~ m{.*?<VAR>(.*?)</VAR>(.*)$}s) {
my $thisvar = $1;
$srcdata = $2;
if ($thisvar =~ m{\s*<NAME>\s*(.*)\s*</NAME>\s*<DESC>\s*(.*)\s*</DESC>\s*}s) {
printf ".IP \"%s\"\n", $1;
printf ".RS\n";
my $l = $2; chomp $l;chomp $l;chomp $l;
printf "%s\n",$l;
printf ".RE\n";
next;
}
if ($thisvar =~ m{\s*<HEAD>\s*(.*)\s*</HEAD>\s*<DESC>\s*(.*?)\s*</DESC>\s*}s) {
my $l = $1; chomp $l;chomp $l;chomp $l;
printf ".SH \"%s\"\n",$l;
my $l = $2; chomp $l;chomp $l;chomp $l;
printf "%s\n",$l;
next;
} elsif ($thisvar =~ m{\s*<DESC>\s*(.*)\s*</DESC>\s*}s) {
my $l = $1; chomp $l;chomp $l;chomp $l;
printf "%s\n",$l;
}
} else {
last; ## No more vars ...
}
}
print '.SH SEE ALSO
.IR zmailer (1zm),
.PP
.SH AUTHOR
This document authored and copyright by:
.RS 3em
Matti Aarnio <mea@nic.funet.fi>
.RE
';
exit 0;
syntax highlighted by Code2HTML, v. 0.9.1