#! /usr/bin/perl

#
# Script to generate the mailq-m  man-page from source material embedded in
# scheduler/mailq.inc  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; $!";



SRCFILE->autoflush(0);
my $oldinsep = $/;
$/ = undef; # Slurp everything into one long line
my $srcdata = SRCFILE->getline;
$/ = $oldinsep; # Restore the separator

close SRCFILE;


print '\'\" t
.\" THIS FILE IS GENERATED WITH  mailq-m-generate.pl  FROM  mailq.inc
.ds ]W "ZMailer 2.99"
.nr X
';

printf ".TH MAILQ-M 5zm \"%s\"\n", strftime("%Y-%b-%d",localtime());

print '.SH NAME
"mailq \-M" \- output format description
.SH SYNOPSIS
Lots of odd variables and counters
.PP
These are generated from inline XMLishly tagged
descriptions in file
.I "scheduler/mailq.inc" 
.SH DESCRIPTION
';

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";
	} elsif ($thisvar =~ m{\s*<HEAD>\s*(.*)\s*</HEAD>\s*<DESC>\s*(.*)\s*</DESC>\s*}s) {
	    my $l = $1; chomp $l;chomp $l;chomp $l;
	    printf ".SS \"%s\"\n",$l;
	    my $l = $2; chomp $l;chomp $l;chomp $l;
	    printf "%s\n",$l;
        } 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 mailq (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