diff --git a/install_perl_modules_mailserver.sh b/install_perl_modules_mailserver.sh new file mode 100755 index 0000000..55e798f --- /dev/null +++ b/install_perl_modules_mailserver.sh @@ -0,0 +1,75 @@ +#!/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 "" +echononl "\tInstall 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