diff options
Diffstat (limited to 'debian/local/parse_mc.in')
-rw-r--r-- | debian/local/parse_mc.in | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/debian/local/parse_mc.in b/debian/local/parse_mc.in new file mode 100644 index 0000000..569e355 --- /dev/null +++ b/debian/local/parse_mc.in @@ -0,0 +1,86 @@ +#!/usr/bin/perl -w +#------------------------------------------------------------------------ +# +# $Sendmail: parse_mc,v @sm_version@ @sm_date@ @sm_time@ cowboy Exp $ +# +# Parse Sendmail config for databases +# +# Copyright 2000-@SM_CPYRT@ Richard Nelson. All Rights Reserved. +# +# Notes (to all): +# * for "define(xxx,...)"; "define(xxx," must be on same line, but the +# rest may be split across multiple lines +# * assumes makemap dbtype /etc/mail/database < /etc/mail/database +# +# Notes (to self): +# * +# +#------------------------------------------------------------------------ +# My first perl program (from my first awk program ;-}) +# +# Initialization of the perl environment +use strict; # be kosher +use Env; # A few environmental references +use integer; # Peformance +use Getopt::Long; # parameter handling + +# Local libraries - for Debian Sendmail Perl helper functions +# BEGIN { $main::my_path = substr($0,$[,rindex($0,'/')) }; +use lib ('.', substr($0,$[,rindex($0,'/')), "@datadir@/sendmail"); +require Parse_mc; + +# Version of this program +#($main::MYNAME = $main::0) =~ s|.*/||; +#$main::Author = "Richard Nelson"; +#$main::AuthorMail = "cowboy\@debian.org"; +#$main::Version = '$Revision: 2.00 $ '; +$main::program_name = $0; +$main::program_version = '@sm_version@'; +$main::program_date = '@sm_date@ @sm_time@ cowboy'; +$main::debug = 0; + +# +#------------------------------------------------------------------------------ +# Finally, some code (almost) +#------------------------------------------------------------------------------ +# +# Argument handling... +$main::opt_help=''; +$main::opt_output_file=''; +$main::opt_input_file=''; +$main::opt_debug=''; +my @options = qw( + help|h + output-file|output_file|o:s + input-file|input_file|i:s@ + debug! + ); +my $result = GetOptions(@options); +if ( ! $result ) { + die "Terminating due to parameter error"; + }; +if ( $main::opt_help ) { + warn "$main::program_name $main::program_version $main::program_date\n"; + warn "$0 \n"; + warn " -help\n" if $main::opt_help; + warn " -debug\n" if $main::opt_debug; + warn " -o $main::opt_output_file\n" if $main::opt_output_file; + warn " -i $main::opt_input_file\n" if $main::opt_input_file; + exit 0; + }; + +${Parse_mc::database_file} = $main::opt_output_file + if $main::opt_output_file; +my $input_files = join(' ', @main::opt_input_file); +# $main::debug is used in parse_mc ! +$main::debug = $main::opt_debug || $main::debug; + +# Let them know wtf is going on... +print STDOUT "Creating ${Parse_mc::database_file}...\n"; + +# Read the mc/m4 files +&Parse_mc::read_mc($input_files); + +# Write out the textual representation +&Parse_mc::write_dbs('', $input_files); + |