mailsystem/install_all_needed_resources.sh

188 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
_src_base_dir="$(realpath $(dirname $0))"
log_file="$(mktemp)"
# -------------
# - Functions
# -------------
clean_up() {
# Perform program exit housekeeping
rm -f "$log_file"
exit $1
}
echononl(){
echo X\\c > /tmp/shprompt$$
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
echo "$*\\c" 1>&2
else
echo -e -n "$*" 1>&2
fi
rm /tmp/shprompt$$
}
error(){
echo ""
echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*"
echo ""
}
echo_ok() {
echo -e "\033[75G[ \033[32mok\033[m ]"
## echo -e " [ ok ]"
}
echo_failed(){
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
## echo -e " [ failed ]"
}
echo_skipped() {
echo -e "\033[80G[ \033[33m\033[1mskipped\033[m ]"
}
_needed_packages_base="
alien
amavisd-new
arc
arj
aspell-da
aspell-de
aspell-en
aspell-es
aspell-fr
aspell-it
binutils
bsd-mailx
bzip2
cabextract
clamav-base
clamav-daemon
clamav-docs
clamav-freshclam
cpanminus
cpio\
ftp
geoip-bin
geoip-database
haveged
lhasa
libclamunrar7
libdbd-mysql
libdbd-mysql-perl
libdbd-pg-perl
libdbd-pgsql
libdbi-dev
libdbi-perl
libemail-sender-perl
libemail-valid-perl
libgeoip-dev
libgeo-ipfree-perl
libgeo-ip-perl
libgmp10
libgmp-dev
libimage-info-perl
libio-socket-ssl-perl
libio-string-perl
libio-zlib-perl
libkrb5-dev
liblog-log4perl-perl
liblz4-tool
libmail-dkim-perl
libmail-sendmail-perl
libmail-spf-perl
libmime-encwords-perl
libnet-cidr-lite-perl
libnet-ident-perl
libpq5
libpq-dev
libsasl2-modules
lrzip
lzop
melt
ncftp
nomarch
opendkim
opendkim-tools
p7zip
p7zip-full
p7zip-rar
pax
postfix
postfix-mysql
postfix-pcre
postfix-pgsql
postgrey
pyzor
rar
re2c
ripole
rpm
sasl2-bin
socat
spamassassin razor
tar
tnef
unrar
unrar-free
unzip
zip
zoo"
echo ""
echononl " Install needed debian packages"
for _pkg in $_needed_packages_base ; do
if aptitude search "$_pkg" | grep " $_pkg " | grep -e "^i" > /dev/null 2>&1 ; then
continue
else
needed_packages_base="$needed_packages_base $_pkg"
fi
done
if [[ -n "$needed_packages_base" ]]; then
DEBIAN_FRONTEND=noninteractive apt-get -y install $needed_packages_base > /dev/null 2> "$log_file"
if [[ $? -eq 0 ]] ; then
echo_ok
else
echo_failed
error "$(cat $log_file)"
fi
else
echo_skipped
fi
echo ""
echononl " Install database related CPAN Modules"
_failed=false
> $log_file
_needed_cpan_modules="
CPAN
Mail::Sender
DBI
DBD::mysql
DBD::Pg
IO::Socket::UNIX
Digest::SHA1
Digest::SHA2
Digest::SHA256
Encode::Detect
Net::Patricia"
for _module in $_needed_cpan_modules ; do
cpanm -q --skip-installed $_module >> "$log_file" 2>&1
if [[ "$?" -ne 0 ]] ; then
_failed=true
fi
done
if $_failed ; then
echo_failed
error "$(cat $log_file)"
else
echo_ok
fi
echo ""
clean_up 0