mirror of
https://github.com/MailScanner/v5.git
synced 2024-11-15 13:14:33 +08:00
c52d1ab4be
none
85 lines
3.6 KiB
Bash
85 lines
3.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# MailScanner perl module checker
|
|
#
|
|
# This script will check for any missing perl modules.
|
|
#
|
|
# Jerry Benton <mailscanner@mailborder.com>
|
|
# 27 FEB 2015
|
|
|
|
# check for perldoc
|
|
if [ ! -x /usr/bin/perldoc ]; then
|
|
clear
|
|
echo;
|
|
echo "The perldoc command cannot be found. I need this program to check your";
|
|
echo "modules. Install it or edit this script to point to the correct location.";
|
|
echo;
|
|
exit 1
|
|
else
|
|
PERLDOC='/usr/bin/perldoc';
|
|
fi
|
|
|
|
# the array of perl modules needed
|
|
ARMOD=();
|
|
ARMOD+=('Archive::Tar'); ARMOD+=('Archive::Zip'); ARMOD+=('bignum');
|
|
ARMOD+=('Carp'); ARMOD+=('Compress::Zlib'); ARMOD+=('Compress::Raw::Zlib');
|
|
ARMOD+=('Convert::BinHex'); ARMOD+=('Convert::TNEF'); ARMOD+=('Data::Dumper');
|
|
ARMOD+=('Date::Parse'); ARMOD+=('DBD::SQLite'); ARMOD+=('DBI');
|
|
ARMOD+=('Digest::HMAC'); ARMOD+=('Digest::MD5'); ARMOD+=('Digest::SHA1');
|
|
ARMOD+=('DirHandle'); ARMOD+=('ExtUtils::MakeMaker'); ARMOD+=('Fcntl');
|
|
ARMOD+=('File::Basename'); ARMOD+=('File::Copy'); ARMOD+=('File::Path');
|
|
ARMOD+=('File::Spec'); ARMOD+=('File::Temp'); ARMOD+=('FileHandle');
|
|
ARMOD+=('Filesys::Df'); ARMOD+=('Getopt::Long'); ARMOD+=('Inline::C');
|
|
ARMOD+=('IO'); ARMOD+=('IO::File'); ARMOD+=('IO::Pipe');
|
|
ARMOD+=('IO::Stringy'); ARMOD+=('HTML::Entities'); ARMOD+=('HTML::Parser');
|
|
ARMOD+=('HTML::Tagset'); ARMOD+=('HTML::TokeParser'); ARMOD+=('Mail::Field');
|
|
ARMOD+=('Mail::Header'); ARMOD+=('Mail::IMAPClient'); ARMOD+=('Mail::Internet');
|
|
ARMOD+=('Math::BigInt'); ARMOD+=('Math::BigRat'); ARMOD+=('MIME::Base64');
|
|
ARMOD+=('MIME::Decoder'); ARMOD+=('MIME::Decoder::UU'); ARMOD+=('MIME::Head');
|
|
ARMOD+=('MIME::Parser'); ARMOD+=('MIME::QuotedPrint'); ARMOD+=('MIME::Tools');
|
|
ARMOD+=('MIME::WordDecoder'); ARMOD+=('Net::CIDR'); ARMOD+=('Net::DNS');
|
|
ARMOD+=('Net::IP'); ARMOD+=('OLE::Storage_Lite'); ARMOD+=('Pod::Escapes');
|
|
ARMOD+=('Pod::Simple'); ARMOD+=('POSIX'); ARMOD+=('Scalar::Util');
|
|
ARMOD+=('Socket'); ARMOD+=('Storable'); ARMOD+=('Test::Harness');
|
|
ARMOD+=('Test::Pod'); ARMOD+=('Test::Simple'); ARMOD+=('Time::HiRes');
|
|
ARMOD+=('Time::localtime'); ARMOD+=('Sys::Hostname::Long'); ARMOD+=('Sys::SigAction');
|
|
ARMOD+=('Sys::Syslog'); ARMOD+=('Env'); ARMOD+=('File::ShareDir::Install');
|
|
ARMOD+=('Mail::SpamAssassin');
|
|
|
|
# not required but nice to have
|
|
ARMOD+=('bignum'); ARMOD+=('Business::ISBN'); ARMOD+=('Business::ISBN::Data');
|
|
ARMOD+=('Data::Dump'); ARMOD+=('DB_File'); ARMOD+=('DBD::SQLite');
|
|
ARMOD+=('DBI'); ARMOD+=('Digest'); ARMOD+=('Encode::Detect');
|
|
ARMOD+=('Error'); ARMOD+=('ExtUtils::CBuilder'); ARMOD+=('ExtUtils::ParseXS');
|
|
ARMOD+=('Getopt::Long'); ARMOD+=('Inline'); ARMOD+=('IO::String');
|
|
ARMOD+=('IO::Zlib'); ARMOD+=('IP::Country'); ARMOD+=('Mail::SPF');
|
|
ARMOD+=('Mail::SPF::Query'); ARMOD+=('Module::Build'); ARMOD+=('Net::CIDR::Lite');
|
|
ARMOD+=('Net::DNS'); ARMOD+=('Net::LDAP'); ARMOD+=('Net::DNS::Resolver::Programmable');
|
|
ARMOD+=('NetAddr::IP'); ARMOD+=('Parse::RecDescent'); ARMOD+=('Test::Harness');
|
|
ARMOD+=('Test::Manifest'); ARMOD+=('Text::Balanced'); ARMOD+=('URI');
|
|
ARMOD+=('version');
|
|
|
|
# additional spamassassin plugins
|
|
ARMOD+=('Mail::SpamAssassin::Plugin::Rule2XSBody');
|
|
ARMOD+=('Mail::SpamAssassin::Plugin::DCC');
|
|
ARMOD+=('Mail::SpamAssassin::Plugin::Pyzor');
|
|
|
|
for i in "${ARMOD[@]}"
|
|
do
|
|
$PERLDOC -l $i >/dev/null 2>&1
|
|
if [ $? != 0 ]; then
|
|
echo "WARNING: $i => Missing";
|
|
else
|
|
echo "$i => OK";
|
|
fi
|
|
done
|
|
|
|
for i in "${ARMOD2[@]}"
|
|
do
|
|
$PERLDOC -l $i >/dev/null 2>&1
|
|
if [ $? != 0 ]; then
|
|
echo "OPTIONAL: $i => Missing";
|
|
else
|
|
echo "$i => OK";
|
|
fi
|
|
done
|