summaryrefslogtreecommitdiff
path: root/debian/local/parse_mc.in
diff options
context:
space:
mode:
Diffstat (limited to 'debian/local/parse_mc.in')
-rw-r--r--debian/local/parse_mc.in86
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);
+