/usr/share/sendmail/parse_mc is in sendmail-base 8.15.2-10.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | #!/usr/bin/perl -w
#------------------------------------------------------------------------
#
# $Sendmail: parse_mc,v 8.15.2 2018-01-13 23:43:05 cowboy Exp $
#
# Parse Sendmail config for databases
#
# Copyright 2000-2010 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,'/')), "/usr/share/sendmail");
require Parse_mc;
require Parse_conf;
# 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 = '8.15.2';
$main::program_date = '2018-01-13 23:43:05 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;
# Pull in some configuration data
&Parse_conf::read_conf();
my ($ok, $value) = &Parse_conf::get_value('HANDS_OFF');
if ($value ne '0') {
unlink "${Parse_mc::database_file}";
exit;
};
# 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);
|