188 lines
3.0 KiB
Bash
Executable File
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
|