3554 lines
117 KiB
Bash
Executable File
3554 lines
117 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
_src_base_dir=/usr/local/src/sympa
|
|
conf_file="${_src_base_dir}/conf/install_sympa.conf"
|
|
|
|
backup_date="$(date +%Y-%m-%d-%H%M)"
|
|
|
|
err_log="$(mktemp)"
|
|
|
|
_required_debian_packages="
|
|
libauthcas-perl
|
|
libclass-singleton-perl
|
|
libdatetime-timezone-perl
|
|
libdatetime-format-mail-perl
|
|
libdbd-csv-perl
|
|
libdbd-odbc-perl
|
|
libdbd-mysql-perl
|
|
libdbd-odbc-perl
|
|
libdbd-sybase-perl
|
|
libdbd-pg-perl
|
|
libdbd-sqlite3-perl
|
|
libfile-nfslock-perl
|
|
libutf8-all-perl
|
|
libmime-base64-perl
|
|
libmime-charset-perl
|
|
libcrypt-ciphersaber-perl
|
|
libcrypt-openssl-x509-perl
|
|
libcrypt-smime-perl
|
|
libdata-password-perl
|
|
libproc-processtable-perl
|
|
libdbi-perl
|
|
libdbi-test-perl
|
|
libarchive-zip-perl
|
|
libmailtools-perl
|
|
libmsgcat-perl
|
|
libmime-tools-perl
|
|
libio-stringy-perl
|
|
libnet-ldap-perl
|
|
libcgi-fast-perl
|
|
libintl-perl
|
|
libmime-charset-perl
|
|
libmime-encwords-perl
|
|
libtemplate-perl
|
|
libxml-libxml-perl
|
|
perl-modules
|
|
libcgi-pm-perl
|
|
libhtml-stripscripts-parser-perl
|
|
libhtml-tree-perl
|
|
libhtml-format-perl
|
|
mhonarc
|
|
libregexp-common-perl
|
|
ca-certificates
|
|
lsb-base
|
|
libdbd-mysql-perl
|
|
libfcgi-perl
|
|
libfile-copy-recursive-perl
|
|
libnet-netmask-perl
|
|
libterm-progressbar-perl
|
|
libmime-lite-html-perl
|
|
libunicode-linebreak-perl
|
|
libio-socket-ssl-perl
|
|
libsoap-lite-perl
|
|
libcrypt-ciphersaber-perl
|
|
libmail-dkim-perl
|
|
"
|
|
#_required_debian_packages="
|
|
# libcgi-pm-perl
|
|
# libdbd-mysql-perl
|
|
# mhonarc"
|
|
|
|
|
|
|
|
## --- some functions
|
|
## ---
|
|
clean_up() {
|
|
|
|
# Perform program exit housekeeping
|
|
rm -f "$err_log"
|
|
exit $1
|
|
}
|
|
|
|
echononl(){
|
|
echo X\\c > /tmp/shprompt$$
|
|
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
|
|
echo -e -n "$*\\c" 1>&2
|
|
else
|
|
echo -e -n "$*" 1>&2
|
|
fi
|
|
rm /tmp/shprompt$$
|
|
}
|
|
|
|
fatal(){
|
|
echo ""
|
|
echo -e "[ \033[31m\033[1mError\033[m ]: $*"
|
|
echo ""
|
|
echo -e "\t\033[31m\033[1mInstalllation is canceled\033[m\033[m"
|
|
echo ""
|
|
clean_up 1
|
|
}
|
|
|
|
warn (){
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*"
|
|
echo ""
|
|
}
|
|
|
|
info (){
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mInfo\033[m ]: $*"
|
|
echo ""
|
|
}
|
|
|
|
ok (){
|
|
echo ""
|
|
echo -e "\t[ \033[36m\033[1mOk\033[m ]: $*"
|
|
echo ""
|
|
}
|
|
|
|
error(){
|
|
echo ""
|
|
echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*"
|
|
echo ""
|
|
}
|
|
|
|
echo_ok() {
|
|
echo -e "\033[75G[ \033[32mok\033[m ]"
|
|
}
|
|
echo_failed(){
|
|
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
|
}
|
|
echo_skipped() {
|
|
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
|
|
}
|
|
## ---
|
|
## --- END: functions
|
|
|
|
trap clean_up SIGHUP SIGINT SIGTERM
|
|
|
|
# - Support systemd ?
|
|
# -
|
|
if [[ "X$(which systemd)" = "X" ]]; then
|
|
SYSTEMD_EXISTS=false
|
|
else
|
|
SYSTEMD_EXISTS=true
|
|
fi
|
|
|
|
|
|
DEFAULT_PREFIX="/usr/local/sympa"
|
|
DEFAULT_SYMPA_USER="sympa"
|
|
|
|
DEFAULT_SYMPA_MAIN_CONF_DIR="/etc/sympa"
|
|
DEFAULT_SYMPA_LIST_DATA_DIR="/data/sympa/list_data"
|
|
|
|
DEFAULT_START_AT_BOOTTIME="yes"
|
|
|
|
DEFAULT_SYMPA_DB_TYPE="mysql"
|
|
DEFAULT_SYMPA_DB_HOST="127.0.0.1"
|
|
DEFAULT_SYMPA_DB_NAME="sympa"
|
|
DEFAULT_SYMPA_DB_USER="sympa"
|
|
|
|
# - DEFAULT_SYMPA_DB_PORT will be determined later
|
|
|
|
|
|
DEFAULT_VSERVER_GUEST="no"
|
|
|
|
|
|
echo
|
|
echononl "\tInclude Configuration file.."
|
|
if [[ ! -f $conf_file ]]; then
|
|
echo_failed
|
|
fatal "Missing configuration file '$conf_file'"
|
|
else
|
|
source $conf_file
|
|
echo_ok
|
|
fi
|
|
|
|
if [[ -z "$SYMPA_DOMAIN" ]]; then
|
|
fatal "Missing value for the sympa domain (SYMPA_DOMAIN)"
|
|
else
|
|
DEFAULT_SYMPA_DOMAIN="$SYMPA_DOMAIN"
|
|
fi
|
|
|
|
DEFAULT_SYMPA_WEB_URL="https://$SYMPA_DOMAIN/wws"
|
|
|
|
[[ -n "$PREFIX" ]] && DEFAULT_PREFIX="$PREFIX"
|
|
[[ -n "$SYMPA_USER" ]] && DEFAULT_SYMPA_USER="$SYMPA_USER"
|
|
[[ -n "$SYMPA_MAIN_CONF_DIR" ]] && DEFAULT_SYMPA_MAIN_CONF_DIR="$SYMPA_MAIN_CONF_DIR"
|
|
[[ -n "$SYMPA_LISTMASTER" ]] && DEFAULT_SYMPA_LISTMASTER="$SYMPA_LISTMASTER"
|
|
[[ -n "$SYMPA_LIST_DATA_DIR" ]] && DEFAULT_SYMPA_LIST_DATA_DIR="$SYMPA_LIST_DATA_DIR"
|
|
[[ -n "$START_AT_BOOTTIME" ]] && DEFAULT_START_AT_BOOTTIME="$START_AT_BOOTTIME"
|
|
[[ -n "$SYMPA_DB_NAME" ]] && DEFAULT_SYMPA_DB_NAME="$SYMPA_DB_NAME"
|
|
[[ -n "$SYMPA_DB_PORT" ]] && DEFAULT_SYMPA_DB_PORT="$SYMPA_DB_PORT"
|
|
[[ -n "$SYMPA_DB_USER" ]] && DEFAULT_SYMPA_DB_USER="$SYMPA_DB_USER"
|
|
[[ -n "$VSERVER_GUEST" ]] && DEFAULT_VSERVER_GUEST="$VSERVER_GUEST"
|
|
[[ -n "$SYMPA_DB_PASSWD" ]] && DEFAULT_SYMPA_DB_PASSWD="$SYMPA_DB_PASSWD"
|
|
|
|
|
|
if [[ -n "$SYMPA_LISTMASTER" ]] ; then
|
|
DEFAULT_SYMPA_LISTMASTER="$SYMPA_LISTMASTER"
|
|
else
|
|
DEFAULT_SYMPA_LISTMASTER="postmaster@$SYMPA_DOMAIN"
|
|
fi
|
|
|
|
if [[ -z "$MYSQL_CREDENTIALS" ]] ; then
|
|
if [ -f "/usr/local/mysql/sys-maint.cnf" ]; then
|
|
mysql_credential_args="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
|
elif [ -f "/etc/mysql/debian.cnf" ]; then
|
|
mysql_credential_args="--defaults-file=/etc/mysql/debian.cnf"
|
|
fi
|
|
else
|
|
mysql_credential_args="$MYSQL_CREDENTIALS"
|
|
fi
|
|
|
|
|
|
APACHE_INIT_SCRIPT=""
|
|
if [ -x "/etc/init.d/apache2" ]; then
|
|
APACHE_INIT_SCRIPT="/etc/init.d/apache2"
|
|
elif [ -x "/etc/init.d/apachectl" ]; then
|
|
APACHE_INIT_SCRIPT="/etc/init.d/apachectl"
|
|
else
|
|
fatal 'Cannot find init-script for Apache web server!'
|
|
fi
|
|
|
|
|
|
## - Determin the IP-Addresses
|
|
## -
|
|
__ipv4="`ifconfig | grep -e \"^\s*inet Adresse\" | grep -v \"127.0.0.1\" | awk '{print$2}' | cut -d\":\" -f2 | sort | head -1`"
|
|
__ipv6="`ifconfig | grep -e \"^\s*inet6-Adresse\" | awk '{print$2}' | grep -v -e \"^::1/\" | grep -v -e \"^fe80\" | cut -d\"/\" -f1 | sort | head -1`"
|
|
|
|
|
|
_debian_apache_installation=false
|
|
_base_webserver_info_needed=false
|
|
_apache_vhost_dir=""
|
|
apache_log_dir=""
|
|
apache_conf_dir=""
|
|
apache_vhost_dir=""
|
|
## - Determin VHost Configuration Directory
|
|
## -
|
|
if dpkg -l apache2 2> /dev/null | grep -e "^ii" > /dev/null 2>&1 ; then
|
|
|
|
_debian_apache_installation=true
|
|
|
|
if [ -d "/etc/apache2" -a -d "/etc/apache2/sites-available" ]; then
|
|
apache_vhost_dir=/etc/apache2/sites-available
|
|
apache_conf_dir=/etc/apache2
|
|
if [ -d "/var/log/apache2" ]; then
|
|
apache_log_dir=/var/log/apache2
|
|
else
|
|
error "Found Debian Apache Installation, but no Log Directory found!"
|
|
fatal "Something went wron with your Apache Installation"
|
|
fi
|
|
else
|
|
error "Found Debian Apache Installation, but no Configuration Directory for vhosts!"
|
|
fatal "Something went wron with your Apache Installation"
|
|
fi
|
|
|
|
else
|
|
|
|
## - Determin httpd binary
|
|
## -
|
|
_httpd_binary="`which httpd`"
|
|
if [ -z "$_httpd_binary" ]; then
|
|
_httpd_binary="$(ps -axu | grep httpd | grep -e "^root" | grep -v grep | awk '{print$11}')"
|
|
|
|
if [ -z "$_httpd_binary" ]; then
|
|
if [ -x "/usr/local/apache2/bin/httpd" ]; then
|
|
_httpd_binary="/usr/local/apache2/bin/httpd"
|
|
fi
|
|
fi
|
|
fi
|
|
## - Determin ServerRoot Directory
|
|
## -
|
|
apache_base_dir_found=false
|
|
_pass_apache_base_dir=false
|
|
apache_base_dir=`$_httpd_binary -t -D DUMP_RUN_CFG | grep ServerRoot | awk '{print$2}' | tr -d '"'`
|
|
if [ "`realpath /usr/local/apache2`" = "$apache_base_dir" ]; then
|
|
apache_base_dir="/usr/local/apache2"
|
|
_apache_base_dir_realpath="`realpath $apache_base_dir`"
|
|
elif [ -z "$apache_base_dir" ]; then
|
|
if [ -d "`realpath /usr/local/apache2`" ];then
|
|
apache_base_dir="/usr/local/apache2"
|
|
_apache_base_dir_realpath="`realpath $apache_base_dir`"
|
|
fi
|
|
else
|
|
_apache_base_dir_realpath=$apache_base_dir
|
|
fi
|
|
if [ -z "$apache_base_dir" ];then
|
|
_base_webserver_info_needed=true
|
|
apache_base_dir_found=true
|
|
else
|
|
_pass_apache_base_dir=true
|
|
fi
|
|
|
|
## - Determin Apache Configuration Directory
|
|
## -
|
|
apache_conf_dir_found=false
|
|
if [ -n "$apache_base_dir" ];then
|
|
if [ -d "${apache_base_dir}/conf" ]; then
|
|
apache_conf_dir=${apache_base_dir}/conf
|
|
apache_conf_dir_found=true
|
|
else
|
|
_base_webserver_info_needed=true
|
|
fi
|
|
else
|
|
_base_webserver_info_needed=true
|
|
fi
|
|
|
|
## - Determin Apache Log Directory
|
|
## -
|
|
_apache_errorlog_dir=`$_httpd_binary -t -D DUMP_RUN_CFG | grep "Main ErrorLog:" | awk '{print$3}' | tr -d '"'`
|
|
if [ -d "`dirname $_apache_errorlog_dir`" ]; then
|
|
apache_log_dir=`dirname $_apache_errorlog_dir`
|
|
fi
|
|
|
|
## - Determin VHost Configuration Directory
|
|
## -
|
|
if [ -d "${apache_conf_dir}/vhosts" ]; then
|
|
_apache_vhost_dir=${apache_conf_dir}/vhosts
|
|
fi
|
|
fi
|
|
|
|
if $_base_webserver_info_needed ; then
|
|
fatal "Apache Webserver not found!"
|
|
fi
|
|
|
|
clear
|
|
echo
|
|
echo -e "\033[21G\033[32mInstallation script for Sympa mailing list server \033[m"
|
|
echo
|
|
echo
|
|
echo
|
|
|
|
|
|
DISTRIBUTION=
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Which (linux) distribution is installed?"
|
|
echo ""
|
|
echo "[1] Debian"
|
|
echo "[2] andere"
|
|
echo ""
|
|
echononl "Eingabe: "
|
|
|
|
while [ "$DISTRIBUTION" != "Debian" -a "$DISTRIBUTION" != "other" ];do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) DISTRIBUTION="Debian"
|
|
;;
|
|
2) DISTRIBUTION="other"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = Debian ; 2 = andere ]"
|
|
echo ""
|
|
echononl "Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
if [ "$DISTRIBUTION" == "other" ]; then
|
|
info "Distributions other than Debian are not supported by that script."
|
|
echo -e "\n\t \033[31m\033[1mInstallation is canceled\033[m\033[m .."
|
|
echo ""
|
|
clean_up 2
|
|
elif [ "$DISTRIBUTION" == "Debian" ]; then
|
|
SYMPA_INIT_DIR=/etc/init.d
|
|
else
|
|
SYMPA_INIT_DIR=/etc/rc.d/init.d
|
|
fi
|
|
|
|
_UPDATE_SYMPA=""
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Are you going to update an existing Installation?"
|
|
echo ""
|
|
echo "[1] New initial Installation"
|
|
echo "[2] Update existing Installation"
|
|
echo ""
|
|
echononl "Eingabe: "
|
|
|
|
|
|
while [ "$_UPDATE_SYMPA" != "update" -a "$_UPDATE_SYMPA" != "new" ];do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) _UPDATE_SYMPA="new"
|
|
;;
|
|
2) _UPDATE_SYMPA="update"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = Neuinstallation ; 2 = Update ]"
|
|
echo ""
|
|
echononl "Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
if [ "$_UPDATE_SYMPA" = "update" ];then
|
|
UPDATE_SYMPA=true
|
|
else
|
|
UPDATE_SYMPA=false
|
|
fi
|
|
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert version number for Sympa mailing list server."
|
|
echo ""
|
|
echo ""
|
|
SYMPA_VERSION=
|
|
while [ "X$SYMPA_VERSION" = "X" ]; do
|
|
echononl "Sympa version : "
|
|
read SYMPA_VERSION
|
|
if [ "X$SYMPA_VERSION" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mA version number is required!\033[m\n"
|
|
fi
|
|
done
|
|
|
|
_builddir=${_src_base_dir}/sympa-$SYMPA_VERSION
|
|
_logdir=${_src_base_dir}/log_sympa-$SYMPA_VERSION
|
|
if $UPDATE_SYMPA ; then
|
|
_log_file=${_logdir}/sympa_update.log
|
|
else
|
|
_log_file=${_logdir}/sympa_install.log
|
|
fi
|
|
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
|
|
SYMPA_SUPPORT_MULTIDOMAINS=true
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Should Sympa support multidomains?"
|
|
echo ""
|
|
OK=""
|
|
echononl "Support Multidomains? (yes/no) [yes]: "
|
|
read OK
|
|
if [ "X$OK" = "X" ]; then
|
|
OK=yes
|
|
fi
|
|
while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ]; do
|
|
echo ""
|
|
echononl "\twrong entry! [yes/no]: "
|
|
read OK
|
|
done
|
|
[ $OK = "Yes" -o $OK = "yes" ] || SYMPA_SUPPORT_MULTIDOMAINS=false
|
|
|
|
|
|
POSTFIX_CONF_DIR=
|
|
POSTFIX_CONF_FILES_FOUND=false
|
|
if [ "$DISTRIBUTION" = "Debian" ]; then
|
|
if dpkg -l postfix | grep -q -e "^ii" 2> /dev/null ; then
|
|
if [ -f "/etc/postfix/main.cf" -a -f "/etc/postfix/master.cf" ]; then
|
|
POSTFIX_CONF_DIR=/etc/postfix
|
|
POSTFIX_CONF_FILES_FOUND=true
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if ! $POSTFIX_CONF_FILES_FOUND ; then
|
|
info "Only Postfix is suported by this installation script."
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify Directory includes postfix files \"main.cf\" and \"master.cf\"."
|
|
echo ""
|
|
echo " Type \"^C\" to abort if postfix isn't installed on this system."
|
|
while [ "X$POSTFIX_CONF_DIR" = "X" ]; do
|
|
echo ""
|
|
echononl "Postfix Config Directory: "
|
|
read POSTFIX_CONF_DIR
|
|
if [ "X$POSTFIX_CONF_DIR" = "X" ]; then
|
|
echo ""
|
|
echo -e "\t\033[33mDeclaration is mandatory!\033[m"
|
|
else
|
|
if [ ! -f "${POSTFIX_CONF_DIR}/main.cf" -a ! -f "${POSTFIX_CONF_DIR}/master.cf" ]; then
|
|
echo ""
|
|
echo -e "\t\033[33mPostfix confuguration not found at that location!\033[m retry.."
|
|
POSTFIX_CONF_DIR=""
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify Sympa's user and group."
|
|
echo ""
|
|
SYMPA_USER=
|
|
while [ "X$SYMPA_USER" = "X" ]
|
|
do
|
|
echononl "Sympa user [${DEFAULT_SYMPA_USER}]: "
|
|
read SYMPA_USER
|
|
if [ "X$SYMPA_USER" = "X" ]; then
|
|
SYMPA_USER=$DEFAULT_SYMPA_USER
|
|
fi
|
|
done
|
|
SYMPA_GROUP=
|
|
while [ "X$SYMPA_GROUP" = "X" ]
|
|
do
|
|
echononl "Sympa group [$SYMPA_USER]: "
|
|
read SYMPA_GROUP
|
|
if [ "X$SYMPA_GROUP" = "X" ]; then
|
|
SYMPA_GROUP=$SYMPA_USER
|
|
fi
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify Sympa's installation directory."
|
|
echo ""
|
|
PREFIX=
|
|
echononl "Sympa installation directory [${DEFAULT_PREFIX}]: "
|
|
read PREFIX
|
|
if [ "X$PREFIX" = "X" ]; then
|
|
PREFIX=$DEFAULT_PREFIX
|
|
fi
|
|
SYMPA_MANPATH=${PREFIX}/share/man
|
|
SYMPA_BIN_DIR=${PREFIX}/bin
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
if [ ! -f "${PREFIX}/bin/sympa.pl" ]; then
|
|
fatal "You are in update mode, but i can't find existing installation at $PREFIX"
|
|
fi
|
|
SYMPA_USER=`stat -c "%U" $PREFIX`
|
|
SYMPA_GROUP=`stat -c "%G" $PREFIX`
|
|
fi
|
|
|
|
SYMPA_OLD_VERSION=""
|
|
if $UPDATE_SYMPA ; then
|
|
SYMPA_OLD_VERSION=`egrep -v '^s*$|^#' ${PREFIX}/etc/data_structure.version 2> /dev/null | head -1`
|
|
if [ -n "$SYMPA_OLD_VERSION" -a "$SYMPA_OLD_VERSION" == "$SYMPA_VERSION" ]; then
|
|
warn "You are in update mode, but the old version ($SYMPA_OLD_VERSION) is the same as the new one ($SYMPA_VERSION)!"
|
|
echononl "Type uppercase \"yes\" to proceed with upgrading: "
|
|
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify directory of Sympa main configuration file (sympa.conf)."
|
|
echo ""
|
|
SYMPA_MAIN_CONF_DIR=
|
|
echononl "Sympa main configuration directory [${DEFAULT_SYMPA_MAIN_CONF_DIR}]: "
|
|
read SYMPA_MAIN_CONF_DIR
|
|
if [ "X$SYMPA_MAIN_CONF_DIR" = "X" ]; then
|
|
SYMPA_MAIN_CONF_DIR=$DEFAULT_SYMPA_MAIN_CONF_DIR
|
|
fi
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
if [ ! -f "${SYMPA_MAIN_CONF_DIR}/sympa.conf" ]; then
|
|
fatal "You are in update mode, but i can't find existing main configuration at $SYMPA_MAIN_CONF_DIR"
|
|
fi
|
|
else
|
|
if [ -s "${SYMPA_MAIN_CONF_DIR}/sympa.conf" ]; then
|
|
warn "File \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" is not empty, but this is an initial installation!"
|
|
_empty_conf_file=""
|
|
echononl "Backup and then delete ${SYMPA_MAIN_CONF_DIR}/sympa.conf now? (yes/no) [yes]: "
|
|
read _empty_conf_file
|
|
if [ "X$_empty_conf_file" = "X" ]; then
|
|
_empty_conf_file=yes
|
|
fi
|
|
while [ "X$_empty_conf_file" != "Xyes" -a "X$_empty_conf_file" != "XYes" -a "X$_empty_conf_file" != "XNo" -a "X$_empty_conf_file" != "Xno" ]; do
|
|
echo ""
|
|
echononl "\twrong entry! [yes/no]: "
|
|
read OK
|
|
done
|
|
_empty_conf_file=`echo "$_empty_conf_file" | tr '[:upper:]' '[:lower:]'`
|
|
if [ "$_empty_conf_file" = "yes" ]; then
|
|
mv ${SYMPA_MAIN_CONF_DIR}/sympa.conf ${SYMPA_MAIN_CONF_DIR}/sympa.conf.$backup_date
|
|
ok "Saved ${SYMPA_MAIN_CONF_DIR}/sympa.conf to ${SYMPA_MAIN_CONF_DIR}/sympa.conf.$backup_date"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
SYMPA_LIST_DATA_DIR=
|
|
if $UPDATE_SYMPA ; then
|
|
SYMPA_LIST_DATA_DIR=`grep -e "^home" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
if [ ! -d "$SYMPA_LIST_DATA_DIR" ]; then
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify Sympa's list data directory."
|
|
echo ""
|
|
SYMPA_LIST_DATA_DIR=
|
|
echononl "Sympa's list data directory [${DEFAULT_SYMPA_LIST_DATA_DIR}]: "
|
|
read SYMPA_LIST_DATA_DIR
|
|
if [ "X$SYMPA_LIST_DATA_DIR" = "X" ]; then
|
|
SYMPA_LIST_DATA_DIR=$DEFAULT_SYMPA_LIST_DATA_DIR
|
|
fi
|
|
fi
|
|
else
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Specify Sympa's list data directory."
|
|
echo ""
|
|
SYMPA_LIST_DATA_DIR=
|
|
echononl "Sympa's list data directory [${DEFAULT_SYMPA_LIST_DATA_DIR}]: "
|
|
read SYMPA_LIST_DATA_DIR
|
|
if [ "X$SYMPA_LIST_DATA_DIR" = "X" ]; then
|
|
SYMPA_LIST_DATA_DIR=$DEFAULT_SYMPA_LIST_DATA_DIR
|
|
fi
|
|
fi
|
|
if $UPDATE_SYMPA ; then
|
|
if [ ! -d "$SYMPA_LIST_DATA_DIR" ]; then
|
|
fatal "You are in update mode, but i can't find existing list data dir at $SYMPA_LIST_DATA_DIR"
|
|
fi
|
|
fi
|
|
|
|
|
|
## - Apache webserver related
|
|
## -
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
if ! $_debian_apache_installation ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[32m-- Apache Webserver related\033[m"
|
|
echo ""
|
|
echo "Insert Directory where the vhost configuration file should stay.."
|
|
echo ""
|
|
apache_vhost_dir=
|
|
while [ "X$apache_vhost_dir" = "X" ] ; do
|
|
if [ -n "$_apache_vhost_dir" ];then
|
|
echononl "VHost Base Directory [$_apache_vhost_dir]: "
|
|
read apache_vhost_dir
|
|
if [ "X$apache_vhost_dir" = "X" ]; then
|
|
apache_vhost_dir=$_apache_vhost_dir
|
|
fi
|
|
else
|
|
echononl "VHost Base Directory: "
|
|
read apache_vhost_dir
|
|
if [ ! -d "$read apache_vhost_dir" ];then
|
|
echo -e "\n\t\033[1;33mDirectory \"${apache_vhost_dir}\" not found! Try again..\033[m\n"
|
|
apache_vhost_dir=""
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ -z "$apache_log_dir" ]; then
|
|
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert Directory where the log files should stay.."
|
|
echo ""
|
|
while [ "X$apache_log_dir" = "X" ] ; do
|
|
echononl "Apache Log Directory: "
|
|
read apache_log_dir
|
|
if [ -z "$apache_log_dir" ]; then
|
|
echo -e "\n\t\033[1;33mDeclaration is mandatory!\033[m Try again..\n"
|
|
elif [ ! -d "$apache_log_dir" ];then
|
|
echo -e "\n\t\033[1;33mDirectory \"${apache_log_dir}\" not found!\033[m Try again..\n"
|
|
apache_log_dir=""
|
|
fi
|
|
done
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert the IP-Addresses where the webserver should listen for that site."
|
|
echo ""
|
|
IPv4=
|
|
while [ "X$IPv4" = "X" ];do
|
|
if [ -z "$__ipv4" ]; then
|
|
echononl "IPv4 address: "
|
|
read IPv4
|
|
if [ "X$IPv4" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mEingabe erforderlich!\033[m\n"
|
|
fi
|
|
else
|
|
echononl "IPv4 address [$__ipv4]: "
|
|
read IPv4
|
|
if [ "X$IPv4" = "X" ]; then
|
|
IPv4=$__ipv4
|
|
fi
|
|
fi
|
|
done
|
|
IPv6=
|
|
while [ "X$IPv6" = "X" ];do
|
|
if [ -z "$__ipv6" ]; then
|
|
echononl "IPv6 address: "
|
|
read IPv6
|
|
if [ "X$IPv6" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mEingabe erforderlich!\033[m\n"
|
|
fi
|
|
else
|
|
echononl "IPv6 address [$__ipv6]: "
|
|
read IPv6
|
|
if [ "X$IPv6" = "X" ]; then
|
|
IPv6=$__ipv6
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
|
|
|
|
|
|
|
|
SYMPA_ALIAS_FILE=
|
|
if $UPDATE_SYMPA ; then
|
|
if [ -f "/etc/postfix/sympa_aliases" ]; then
|
|
SYMPA_ALIAS_FILE=/etc/postfix/sympa_aliases
|
|
else
|
|
echo "--"
|
|
echo ""
|
|
echo "Set aliases file."
|
|
echo ""
|
|
echononl "Sympa aliases file: "
|
|
read SYMPA_ALIAS_FILE
|
|
while [ "X$SYMPA_ALIAS_FILE" = "X" ]; do
|
|
echo ""
|
|
echo -e "\tInput is required!"
|
|
echo ""
|
|
echononl "Sympa aliases file: "
|
|
read SYMPA_ALIAS_FILE
|
|
done
|
|
fi
|
|
if [ ! -f "$SYMPA_ALIAS_FILE" ]; then
|
|
fatal "You are in update mode, but i cannot find aliases file $SYMPA_ALIAS_FILE."
|
|
fi
|
|
else
|
|
echo "--"
|
|
echo ""
|
|
echo "Set aliases file."
|
|
echo ""
|
|
if [ -d "/etc/postfix" ]; then
|
|
_SYMPA_ALIAS_FILE=/etc/postfix/sympa_aliases
|
|
echononl "Sympa aliases file [$_SYMPA_ALIAS_FILE]: "
|
|
read SYMPA_ALIAS_FILE
|
|
if [ "X$SYMPA_ALIAS_FILE" == "X" ]; then
|
|
SYMPA_ALIAS_FILE=$_SYMPA_ALIAS_FILE
|
|
fi
|
|
else
|
|
echononl "Sympa aliases file: "
|
|
read SYMPA_ALIAS_FILE
|
|
while [ "X$SYMPA_ALIAS_FILE" = "X" ]; do
|
|
echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = Debian ; 2 = andere ]"
|
|
echo ""
|
|
echononl "Sympa aliases file: "
|
|
read SYMPA_ALIAS_FILE
|
|
done
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo -e "\033[32m--\033[m Some parameters for server configuration"
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo ""
|
|
echo "Default domain for the mailing lists"
|
|
echo ""
|
|
SYMPA_DOMAIN=
|
|
echononl "domain [${DEFAULT_SYMPA_DOMAIN}]: "
|
|
read SYMPA_DOMAIN
|
|
if [ "X$SYMPA_DOMAIN" = "X" ]; then
|
|
SYMPA_DOMAIN=$DEFAULT_SYMPA_DOMAIN
|
|
fi
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Listmaster"
|
|
echo " - Comma seperated list of email addresses"
|
|
echo ""
|
|
SYMPA_LISTMASTER=
|
|
echononl "listmaster [${DEFAULT_SYMPA_LISTMASTER}]: "
|
|
read SYMPA_LISTMASTER
|
|
if [ "X$SYMPA_LISTMASTER" = "X" ]; then
|
|
SYMPA_LISTMASTER=$DEFAULT_SYMPA_LISTMASTER
|
|
fi
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "URL for the Sympa web interface"
|
|
echo ""
|
|
SYMPA_WEB_URL=
|
|
echononl "wwsympa_url [${DEFAULT_SYMPA_WEB_URL}]: "
|
|
read SYMPA_WEB_URL
|
|
if [ "X$SYMPA_WEB_URL" = "X" ]; then
|
|
SYMPA_WEB_URL=$DEFAULT_SYMPA_WEB_URL
|
|
fi
|
|
|
|
echo ""
|
|
echo "-- Database related Parameters"
|
|
echo ""
|
|
echo "Database management system"
|
|
echo ""
|
|
echo "[1] MySQL"
|
|
echo "[2] SQLite"
|
|
echo "[3] Postgres"
|
|
echo "[4] ORACLE"
|
|
echo "[5] Sybase"
|
|
echo ""
|
|
SYMPA_DB_TYPE=""
|
|
echononl "Eingabe: "
|
|
while [ "$SYMPA_DB_TYPE" != "mysql" \
|
|
-a "$SYMPA_DB_TYPE" != "SQLite" \
|
|
-a "$SYMPA_DB_TYPE" != "Pg" \
|
|
-a "$SYMPA_DB_TYPE" != "Oracle" \
|
|
-a "$SYMPA_DB_TYPE" != "Sybase" ]; do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) SYMPA_DB_TYPE="mysql"
|
|
;;
|
|
2) SYMPA_DB_TYPE="SQLite"
|
|
;;
|
|
3) SYMPA_DB_TYPE="Pg"
|
|
;;
|
|
4) SYMPA_DB_TYPE="Oracle"
|
|
;;
|
|
5) SYMPA_DB_TYPE="Sybase"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = MySQL | 2 = SQLite | 3 = Postgres | 4 = Oracle | 5 = Sybase ]"
|
|
echo ""
|
|
echononl "Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Name of the database containing user information."
|
|
echo ""
|
|
echo "If you are using SQLite, then this parameter is the DB file name."
|
|
echo ""
|
|
SYMPA_DB_NAME=
|
|
while [ "X$SYMPA_DB_NAME" = "X" ]; do
|
|
echononl "db_name [$DEFAULT_SYMPA_DB_NAME]: "
|
|
read SYMPA_DB_NAME
|
|
if [ "X$SYMPA_DB_NAME" = "X" ]; then
|
|
#echo ""
|
|
#echo -e "\n\t\033[33m\033[1mEingabe erforderlich!\033[m\n"
|
|
#continue
|
|
SYMPA_DB_NAME="$DEFAULT_SYMPA_DB_NAME"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Database host name."
|
|
echo ""
|
|
SYMPA_DB_HOST=
|
|
echononl "db_host [$DEFAULT_SYMPA_DB_HOST]: "
|
|
read SYMPA_DB_HOST
|
|
if [ "X$SYMPA_DB_HOST" == "X" ]; then
|
|
SYMPA_DB_HOST=$DEFAULT_SYMPA_DB_HOST
|
|
fi
|
|
|
|
if [ "$SYMPA_DB_HOST" = "localhost" ]; then
|
|
SYMPA_DB_HOST=127.0.0.1
|
|
fi
|
|
|
|
if [[ -z "$SYMPA_DB_PORT" ]]; then
|
|
if [[ "$SYMPA_DB_TYPE" = "mysql" ]]; then
|
|
DEFAULT_SYMPA_DB_PORT=3306
|
|
elif [[ "$SYMPA_DB_TYPE" = "Pg" ]]; then
|
|
DEFAULT_SYMPA_DB_PORT=5432
|
|
elif [[ "$SYMPA_DB_TYPE" = "Sybase" ]]; then
|
|
DEFAULT_SYMPA_DB_PORT=2638
|
|
elif [[ "$SYMPA_DB_TYPE" = "Oracle" ]]; then
|
|
DEFAULT_SYMPA_DB_PORT=1575
|
|
fi
|
|
fi
|
|
|
|
if [ "$SYMPA_DB_TYPE" != "SQLite" ]; then
|
|
echo ""
|
|
echo ""
|
|
echo "Database port."
|
|
echo ""
|
|
SYMPA_DB_PORT=
|
|
echononl "db_port [$DEFAULT_SYMPA_DB_PORT]: "
|
|
read SYMPA_DB_PORT
|
|
if [ "X$SYMPA_DB_PORT" == "X" ]; then
|
|
SYMPA_DB_PORT=$DEFAULT_SYMPA_DB_PORT
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Database user."
|
|
echo ""
|
|
SYMPA_DB_USER=
|
|
while [ "X$SYMPA_DB_USER" = "X" ]; do
|
|
echononl "db_user [$DEFAULT_SYMPA_DB_USER]: "
|
|
read SYMPA_DB_USER
|
|
if [ "X$SYMPA_DB_USER" = "X" ]; then
|
|
#echo ""
|
|
#echo -e "\n\t\033[33m\033[1mEingabe erforderlich!\033[m\n"
|
|
#continue
|
|
SYMPA_DB_USER="$DEFAULT_SYMPA_DB_USER"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "Password for database user $SYMPA_DB_USER."
|
|
echo ""
|
|
SYMPA_DB_PASSWD=
|
|
if [[ -n "$DEFAULT_SYMPA_DB_PASSWD" ]]; then
|
|
echononl "db_passwd [$DEFAULT_SYMPA_DB_PASSWD]: "
|
|
read SYMPA_DB_PASSWD
|
|
if [[ "X$SYMPA_DB_PASSWD" ]] ; then
|
|
SYMPA_DB_PASSWD="$DEFAULT_SYMPA_DB_PASSWD"
|
|
fi
|
|
else
|
|
while [ "X$SYMPA_DB_PASSWD" = "X" ]; do
|
|
echononl "db_passwd: "
|
|
read SYMPA_DB_PASSWD
|
|
if [ "X$SYMPA_DB_PASSWD" = "X" ]; then
|
|
echo ""
|
|
echo -e "\n\t\033[33m\033[1mEingabe erforderlich!\033[m\n"
|
|
continue
|
|
fi
|
|
done
|
|
fi
|
|
|
|
|
|
else
|
|
SYMPA_DOMAIN=`grep -e "^domain" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_LISTMASTER=`grep -e "^listmaster" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_WEB_URL=`grep -e "^wwsympa_url" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_TYPE=`grep -e "^db_type" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_NAME=`grep -e "^db_name" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_HOST=`grep -e "^db_host" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_PORT=`grep -e "^db_port" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_USER=`grep -e "^db_user" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
SYMPA_DB_PASSWD=`grep -e "^db_passwd" ${SYMPA_MAIN_CONF_DIR}/sympa.conf | awk '{print$2}'`
|
|
fi
|
|
|
|
_wwsympa_dir="$(echo $SYMPA_WEB_URL | grep / | cut -d/ -f4-)"
|
|
|
|
if [[ "$SYMPA_DB_TYPE" = "mysql" ]]; then
|
|
if $UPDATE_SYMPA ; then
|
|
mysql -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p"$SYMPA_DB_PASSWD" $SYMPA_DB_NAME -N -s -e \
|
|
"SHOW DATABASES LIKE '$SYMPA_DB_NAME'" > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Cannot connect to database witg given credentials"
|
|
fi
|
|
else
|
|
if [[ -z "$mysql_credential_args" ]]; then
|
|
fatal "No root access to MySQL database given (See Parameter MYSQL_CREDENTIALS)!"
|
|
else
|
|
if echo "$(mysql $mysql_credential_args -N -s -e "SHOW DATABASES";)" | grep -q "$SYMPA_DB_NAME" ; then
|
|
|
|
mysql -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p"$SYMPA_DB_PASSWD" $SYMPA_DB_NAME -N -s -e \
|
|
"SHOW DATABASES LIKE '$SYMPA_DB_NAME'" > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Database '$SYMPA_DB_NAME'exists, but is not accessable by the given credentials for user '$SYMPA_DB_USER'!"
|
|
else
|
|
_tables=$(mysql $mysql_credential_args $SYMPA_DB_NAME -N -s -e 'SHOW TABLES' 2>/dev/null)
|
|
|
|
if [[ -n "$_tables" ]]; then
|
|
warn "Database \"$SYMPA_DB_NAME\" exists AND contains tables, but this is an initial installation!"
|
|
_empty_db=""
|
|
echononl "Empty database \"$SYMPA_DB_NAME\" now? (yes/no) [yes]: "
|
|
read _empty_db
|
|
if [ "X$_empty_db" = "X" ]; then
|
|
_empty_db=yes
|
|
fi
|
|
while [ "X$_empty_db" != "Xyes" -a "X$_empty_db" != "XYes" -a "X$_empty_db" != "XNo" -a "X$_empty_db" != "Xno" ]; do
|
|
echo ""
|
|
echononl "\twrong entry! [yes/no]: "
|
|
read OK
|
|
done
|
|
_empty_db=`echo "$_empty_db" | tr '[:upper:]' '[:lower:]'`
|
|
if [[ "$_empty_db" = "yes" ]]; then
|
|
|
|
echo ""
|
|
echononl "\tBackup database '$SYMPA_DB_NAME'.."
|
|
mysqldump $mysql_credential_args --opt $SYMPA_DB_NAME > ${_src_base_dir}/${SYMPA_DB_NAME}-${backup_date}.sql 2> $err_log
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $err_log)"
|
|
fi
|
|
|
|
_failed=false
|
|
for _table in $_tables ; do
|
|
mysql $mysql_credential_args $SYMPA_DB_NAME -N -s -e "DROP TABLE $_table" 2> /dev/null
|
|
if [ "$?" != "0" ]; then
|
|
_failed=true
|
|
fi
|
|
done
|
|
if $_failed ; then
|
|
error "Cleaning up database \"$SYMPA_DB_NAME\" failed!"
|
|
else
|
|
ok "Cleaning up database \"$SYMPA_DB_NAME\" was successful."
|
|
fi
|
|
else
|
|
fatal "Clean up database '$SYMPA_DB_NAME' or use another one."
|
|
fi
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
mysql $mysql_credential_args -N -s -e \
|
|
"CREATE DATABASE IF NOT EXISTS $SYMPA_DB_NAME CHARACTER SET utf8 COLLATE utf8_general_ci"
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Cannot create Database \"$SYMPA_DB_NAME\""
|
|
fi
|
|
mysql $mysql_credential_args -N -s -e \
|
|
"GRANT ALL ON ${SYMPA_DB_NAME}.* TO '${SYMPA_DB_USER}'@'localhost' IDENTIFIED BY '${SYMPA_DB_PASSWD}'"
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Cannot set credentials to db-user \"$SYMPA_DB_USER\" on Database \"$SYMPA_DB_NAME\"!"
|
|
fi
|
|
mysql $mysql_credential_args -N -s -e \
|
|
"GRANT ALL ON ${SYMPA_DB_NAME}.* TO '${SYMPA_DB_USER}'@'`hostname -f`' IDENTIFIED BY '${SYMPA_DB_PASSWD}'"
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Cannot set credentials to db-user \"$SYMPA_DB_USER\" on Database \"$SYMPA_DB_NAME\"!"
|
|
fi
|
|
mysql $mysql_credential_args -N -s -e \
|
|
"USE mysql; UPDATE user SET Super_priv = 'Y' WHERE User = '$SYMPA_DB_USER'"
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Cannot set \"Super_priv\" to user \"$SYMPA_DB_USER\"!"
|
|
fi
|
|
mysql $mysql_credential_args -N -s -e "FLUSH PRIVILEGES"
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "\"FLUSH PRIVILEGES\" failed!"
|
|
fi
|
|
mysql -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p"$SYMPA_DB_PASSWD" $SYMPA_DB_NAME -N -s -e "show tables" > /dev/null 2>&1
|
|
if [[ $? -ne 0 ]]; then
|
|
fatal "Creation of Database \"$SYMPA_DB_NAME\" or setting credentials to db-user \"$SYMPA_DB_USER\" failed!"
|
|
fi
|
|
echo "$SYMPA_DB_NAME $SYMPA_DB_USER $SYMPA_DB_PASSWD" > /root/databases.txt.$SYMPA_DB_NAME
|
|
ok "Creation of Database \"$SYMPA_DB_NAME\" was successfully."
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
elif [[ "$SYMPA_DB_TYPE" = "Pg" ]] || [[ "$SYMPA_DB_TYPE" = "Oracle" ]] || [[ "$SYMPA_DB_TYPE" = "Sybase" ]]; then
|
|
if $UPDATE_SYMPA ; then
|
|
warn "Databasetype is not fully supported by this script.\n\n\t Take care, database '$SYMPA_DB_NAME' is accessible."
|
|
else
|
|
warn "Databasetype is not fully supported by this script.\n\n\t Take care, an empty database '$SYMPA_DB_NAME' exists and is accessible"
|
|
fi
|
|
fi
|
|
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
__START_AT_BOOTTIME=
|
|
echononl "Start at boot time (yes/no) [${DEFAULT_START_AT_BOOTTIME}]: "
|
|
read __START_AT_BOOTTIME
|
|
if [ "X$__START_AT_BOOTTIME" = "X" ]; then
|
|
__START_AT_BOOTTIME=$DEFAULT_START_AT_BOOTTIME
|
|
fi
|
|
__START_AT_BOOTTIME=`echo $__START_AT_BOOTTIME | tr '[:upper:]' '[:lower:]'`
|
|
if [ "$__START_AT_BOOTTIME" = "yes" ] ; then
|
|
START_AT_BOOTTIME=true
|
|
else
|
|
START_AT_BOOTTIME=false
|
|
fi
|
|
fi
|
|
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
SYMPA_UID=`grep -e "^$SYMPA_USER" /etc/passwd | cut -d":" -f3`
|
|
SYMPA_GID=`grep -e "^$SYMPA_USER" /etc/passwd | cut -d":" -f4`
|
|
else
|
|
declare -i _start_gid=1000
|
|
found=false
|
|
while ! $found ; do
|
|
if cat /etc/group | cut -d ":" -f3 | grep -w "$_start_gid" > /dev/null ; then
|
|
let _start_gid++
|
|
else
|
|
found=true
|
|
fi
|
|
done
|
|
SYMPA_GID=$_start_gid
|
|
|
|
|
|
declare -i _start_uid=1000
|
|
found=false
|
|
while ! $found ; do
|
|
if cat /etc/passwd | cut -d ":" -f3 | grep -w "$_start_uid" > /dev/null ; then
|
|
let _start_uid++
|
|
else
|
|
found=true
|
|
fi
|
|
done
|
|
SYMPA_UID=$_start_uid
|
|
fi
|
|
|
|
|
|
## - Is this a system with "systemd" ?
|
|
## -
|
|
OK=
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Are you installing on a VServer guest system?"
|
|
echo ""
|
|
echononl "VServer Gastsystem (yes/no) [$DEFAULT_VSERVER_GUEST]: "
|
|
read OK
|
|
if [ "X$OK" = "X" ]; then
|
|
OK=$DEFAULT_VSERVER_GUEST
|
|
fi
|
|
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
|
|
while [ "X$OK" != "Xyes" -a "X$OK" != "Xno" ]; do
|
|
echo ""
|
|
echononl "\twrong entry! [yes/no]: "
|
|
read OK
|
|
OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'`
|
|
done
|
|
if [ "$OK" = "yes" ]; then
|
|
SYSTEMD_EXISTS=false
|
|
fi
|
|
|
|
if $UPDATE_SYMPA ;then
|
|
_new=false;
|
|
_update=true
|
|
else
|
|
_new=true;
|
|
_update=false
|
|
fi
|
|
|
|
clear
|
|
echo ""
|
|
if $UPDATE_SYMPA ; then
|
|
echo -e "\033[21G\033[32mStart Sympa Update with the following Parameters \033[m"
|
|
echo ""
|
|
echo -e "-- \033[33m\033[1mUpdate (Replace an existing installation)\033[m --"
|
|
else
|
|
echo -e "\033[21G\033[32mStart Sympa Installation with the following Parameters \033[m"
|
|
echo ""
|
|
echo -e "-- \033[33m\033[1mNew (initial) installation\033[m --"
|
|
fi
|
|
echo ""
|
|
echo "Sympa version...................: $SYMPA_VERSION"
|
|
echo " First (initial) Install......: $_new"
|
|
echo " Update ......................: $_update"
|
|
echo ""
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "Sympa support for multidomains..: $SYMPA_SUPPORT_MULTIDOMAINS"
|
|
fi
|
|
echo ""
|
|
echo "Sympa user......................: $SYMPA_USER (id: ${SYMPA_UID})"
|
|
echo "Sympa group.....................: $SYMPA_GROUP (id: ${SYMPA_GID})"
|
|
echo ""
|
|
echo "Installation directory..........: $PREFIX"
|
|
echo "Sympa's bin directory...........: $SYMPA_BIN_DIR"
|
|
echo "Sympa's manpages directory......: $SYMPA_MANPATH"
|
|
echo "Sympa's main conf directory.....: $SYMPA_MAIN_CONF_DIR"
|
|
echo "Sympa's Data directory..........: $SYMPA_LIST_DATA_DIR"
|
|
echo "Sympa's aliases file............: $SYMPA_ALIAS_FILE"
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo ""
|
|
echo "(default) domain................: $SYMPA_DOMAIN"
|
|
echo "Listmaster......................: $SYMPA_LISTMASTER"
|
|
echo "URL for web interface...........: $SYMPA_WEB_URL"
|
|
echo "SctiptAlias Directory...........: $_wwsympa_dir"
|
|
echo ""
|
|
echo "Database management system......: $SYMPA_DB_TYPE"
|
|
echo "Database host...................: $SYMPA_DB_HOST"
|
|
echo "Database port...................: $SYMPA_DB_PORT"
|
|
echo "Database name...................: $SYMPA_DB_NAME"
|
|
echo "Database user...................: $SYMPA_DB_USER"
|
|
echo "Database password...............: $SYMPA_DB_PASSWD"
|
|
echo ""
|
|
echo "Start at boot time..............: $START_AT_BOOTTIME"
|
|
fi
|
|
echo "Directory for init scripts......: $SYMPA_INIT_DIR"
|
|
echo ""
|
|
echo "Use systemd.....................: $SYSTEMD_EXISTS"
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo ""
|
|
echo "Apache VHost directory..........: $apache_vhost_dir"
|
|
echo "Apache Log Directory............: $apache_log_dir"
|
|
echo "IPv4 Address....................: $IPv4"
|
|
echo "IPv6 Address....................: $IPv6"
|
|
echo ""
|
|
echo "Postfix Configuration Directory.: $POSTFIX_CONF_DIR"
|
|
fi
|
|
if $UPDATE_SYMPA ; then
|
|
echo ""
|
|
echo -e "-- \033[34m\033[1mSome determined defines of the installed Sympa System\033[m --"
|
|
echo ""
|
|
echo " (default) domain..................: $SYMPA_DOMAIN"
|
|
echo " Listmaster........................: $SYMPA_LISTMASTER"
|
|
echo " URL for web interface.............: $SYMPA_WEB_URL"
|
|
echo " SctiptAlias Directory.............: $_wwsympa_dir"
|
|
echo ""
|
|
echo " Database management system........: $SYMPA_DB_TYPE"
|
|
echo " Database host.....................: $SYMPA_DB_HOST"
|
|
echo " Database port.....................: $SYMPA_DB_PORT"
|
|
echo " Database name.....................: $SYMPA_DB_NAME"
|
|
echo " Database user.....................: $SYMPA_DB_USER"
|
|
echo " Database password.................: $SYMPA_DB_PASSWD"
|
|
echo ""
|
|
fi
|
|
echo ""
|
|
|
|
echononl "Start with that configuration? [yes/no]: "
|
|
read OK
|
|
while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ]
|
|
do
|
|
echononl "wrong entry! [yes/no] :"
|
|
read OK
|
|
done
|
|
[ $OK = "Yes" -o $OK = "yes" ] || fatal "Change parameters and restart script: `basename $0`"
|
|
|
|
echo ""
|
|
echo ""
|
|
|
|
echononl "\tCreate base source directory"
|
|
if [ ! -d "$_src_base_dir" ]; then
|
|
mkdir -p $_src_base_dir
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot create base source directory"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
|
|
if [ -d "$_logdir" ];then
|
|
echononl "\tBackup existing log directory \"`basename ${_logdir}`\" .. .."
|
|
mv $_logdir $_logdir.$backup_date
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot move log directory \"${_logdir}\"!"
|
|
fi
|
|
fi
|
|
echononl "\tCreate log directory \"`basename ${_logdir}`\".."
|
|
mkdir -p $_logdir > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot create log directory \"${_logdir}\"!"
|
|
fi
|
|
|
|
touch $_log_file
|
|
echo "## -----------" >> $_log_file
|
|
if $UPDATE_SYMPA ; then
|
|
echo "## - Start of Sympa Update with the following Parameters" >> $_log_file
|
|
else
|
|
echo "## - Start of Sympa Installation with the following Parameters" >> $_log_file
|
|
fi
|
|
echo "## -----------" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Sympa version.....................: $SYMPA_VERSION" >> $_log_file
|
|
echo "## - First (initial) Install........: $_new" >> $_log_file
|
|
echo "## - Update ........................: $_update" >> $_log_file
|
|
echo ""
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "## - Sympa support for multidomains....: $SYMPA_SUPPORT_MULTIDOMAINS" >> $_log_file
|
|
fi
|
|
echo "## -" >> $_log_file
|
|
echo "## - Sympa user........................: $SYMPA_USER" >> $_log_file
|
|
echo "## - Sympa group.......................: $SYMPA_GROUP" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Installation directory............: $PREFIX" >> $_log_file
|
|
echo "## - Sympa's bin directory.............: $SYMPA_BIN_DIR" >> $_log_file
|
|
echo "## - Sympa's manpages directory........: $SYMPA_MANPATH" >> $_log_file
|
|
echo "## - Sympa's main conf directory.......: $SYMPA_MAIN_CONF_DIR" >> $_log_file
|
|
echo "## - Sympa's Data directory...........: $SYMPA_LIST_DATA_DIR" >> $_log_file
|
|
echo "## - Sympa's aliases file..............: $SYMPA_ALIAS_FILE" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "## -" >> $_log_file
|
|
echo "## - (default) domain..................: $SYMPA_DOMAIN" >> $_log_file
|
|
echo "## - Listmaster........................: $SYMPA_LISTMASTER" >> $_log_file
|
|
echo "## - URL for web interface.............: $SYMPA_WEB_URL" >> $_log_file
|
|
echo "## - SctiptAlias Directory.............: $_wwsympa_dir" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Database management system........: $SYMPA_DB_TYPE" >> $_log_file
|
|
echo "## - Database host.....................: $SYMPA_DB_HOST" >> $_log_file
|
|
echo "## - Database port.....................: $SYMPA_DB_PORT" >> $_log_file
|
|
echo "## - Database name.....................: $SYMPA_DB_NAME" >> $_log_file
|
|
echo "## - Database user.....................: $SYMPA_DB_USER" >> $_log_file
|
|
echo "## - Database password.................: $SYMPA_DB_PASSWD" >> $_log_file
|
|
fi
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "## -" >> $_log_file
|
|
echo "## - Start at boot time................: $START_AT_BOOTTIME" >> $_log_file
|
|
fi
|
|
echo "## - Directory for init scripts........: $SYMPA_INIT_DIR" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Use systemd.......................: $SYSTEMD_EXISTS" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "## - Apache VHost directory............: $apache_vhost_dir" >> $_log_file
|
|
echo "## - Apache Log Directory..............: $apache_log_dir" >> $_log_file
|
|
echo "## - IPv4 Address......................: $IPv4" >> $_log_file
|
|
echo "## - IPv6 Address......................: $IPv6" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Postfix Configuration Directory...: $POSTFIX_CONF_DIR" >> $_log_file
|
|
fi
|
|
if $UPDATE_SYMPA ; then
|
|
echo "## --- Some determined defines of the installed Sympa System" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - (default) domain...............: $SYMPA_DOMAIN" >> $_log_file
|
|
echo "## - Listmaster.....................: $SYMPA_LISTMASTER" >> $_log_file
|
|
echo "## - URL for web interface..........: $SYMPA_WEB_URL" >> $_log_file
|
|
echo "## - SctiptAlias Directory..........: $_wwsympa_dir" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - Database management system.....: $SYMPA_DB_TYPE" >> $_log_file
|
|
echo "## - Database host..................: $SYMPA_DB_HOST" >> $_log_file
|
|
echo "## - Database port..................: $SYMPA_DB_PORT" >> $_log_file
|
|
echo "## - Database name..................: $SYMPA_DB_NAME" >> $_log_file
|
|
echo "## - Database user..................: $SYMPA_DB_USER" >> $_log_file
|
|
echo "## - Database password..............: $SYMPA_DB_PASSWD" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
echo "## -" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "" >> $_log_file
|
|
|
|
echo "SYMPA_VERSION=$SYMPA_VERSION" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "UPDATE_SYMPA=$UPDATE_SYMPA" >> $_log_file
|
|
echo "" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "SYMPA_SUPPORT_MULTIDOMAINS=$SYMPA_SUPPORT_MULTIDOMAINS" >> $_log_file
|
|
fi
|
|
echo "SYMPA_USER=$SYMPA_USER" >> $_log_file
|
|
echo "SYMPA_GROUP=$SYMPA_GROUP" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "PREFIX=$PREFIX" >> $_log_file
|
|
echo "SYMPA_MAIN_CONF_DIR=$SYMPA_MAIN_CONF_DIR" >> $_log_file
|
|
echo "SYMPA_BIN_DIR=$SYMPA_BIN_DIR" >> $_log_file
|
|
echo "SYMPA_MANPATH=$SYMPA_MANPATH" >> $_log_file
|
|
echo "SYMPA_LIST_DATA_DIR=$SYMPA_LIST_DATA_DIR" >> $_log_file
|
|
echo "SYMPA_ALIAS_FILE=$SYMPA_ALIAS_FILE" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "SYMPA_DOMAIN=$SYMPA_DOMAIN" >> $_log_file
|
|
echo "SYMPA_LISTMASTER=$SYMPA_LISTMASTER" >> $_log_file
|
|
echo "SYMPA_WEB_URL=$SYMPA_WEB_URL" >> $_log_file
|
|
echo "_wwsympa_dir=$_wwsympa_dir" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "SYMPA_DB_TYPE=$SYMPA_DB_TYPE" >> $_log_file
|
|
echo "SYMPA_DB_HOST=$SYMPA_DB_HOST" >> $_log_file
|
|
echo "SYMPA_DB_PORT=$SYMPA_DB_PORT" >> $_log_file
|
|
echo "SYMPA_DB_NAME=$SYMPA_DB_NAME" >> $_log_file
|
|
echo "SYMPA_DB_USER=$SYMPA_DB_USER" >> $_log_file
|
|
echo "SYMPA_DB_PASSWD=$SYMPA_DB_PASSWD" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "START_AT_BOOTTIME=$START_AT_BOOTTIME" >> $_log_file
|
|
fi
|
|
echo "SYMPA_INIT_DIR=$SYMPA_INIT_DIR" >> $_log_file
|
|
echo "" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "apache_vhost_dir=$apache_vhost_dir" >> $_log_file
|
|
echo "apache_log_dir=$apache_log_dir" >> $_log_file
|
|
echo "IPv4=$IPv4" >> $_log_file
|
|
echo "IPv6=$IPv6" >> $_log_file
|
|
fi
|
|
echo "" >> $_log_file
|
|
if ! $UPDATE_SYMPA ; then
|
|
echo "POSTFIX_CONF_DIR=$POSTFIX_CONF_DIR" >> $_log_file
|
|
fi
|
|
echo "" >> $_log_file
|
|
echo "SYSTEMD_EXISTS=$SYSTEMD_EXISTS" >> $_log_file
|
|
|
|
echo "" >> $_log_file
|
|
echo "_src_base_dir=$_src_base_dir" >> $_log_file
|
|
echo "_builddir=$_builddir" >> $_log_file
|
|
echo "_logdir=$_logdir" >> $_log_file
|
|
|
|
echo ""
|
|
|
|
## -
|
|
echo "" >> $_log_file
|
|
echo "## - Change into base source directory \"$_src_base_dir\" .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cd $_src_base_dir" >> $_log_file
|
|
cd $_src_base_dir >> $_log_file 2>&1 || fatal "Changing Directory (cd) to \"${_src_base_dir}\" failed!"
|
|
|
|
echononl "\tGet source sympa-${SYMPA_VERSION}.tar.gz .."
|
|
|
|
if [ ! -f sympa-${SYMPA_VERSION}.tar.gz ]; then
|
|
echo "" >> $_log_file
|
|
echo "## - Get source sympa-${SYMPA_VERSION}.tar.gz .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
# - OLD
|
|
#echo "wget https://www.sympa.org/distribution/sympa-${SYMPA_VERSION}.tar.gz" >> $_log_file
|
|
#wget https://www.sympa.org/distribution/sympa-${SYMPA_VERSION}.tar.gz >> $_log_file 2>&1
|
|
echo "wget https://github.com/sympa-community/sympa/releases/download/6.2.22/sympa-6.2.22.tar.gz" >> $_log_file
|
|
wget https://github.com/sympa-community/sympa/releases/download/6.2.22/sympa-6.2.22.tar.gz >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Download of \"sympa-${SYMPA_VERSION}.tar.gz\" failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
echo ""
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
|
|
echononl "\tAdding Group \"$SYMPA_GROUP\".."
|
|
if ! grep $SYMPA_GROUP /etc/group > /dev/null ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Adding Group \"$SYMPA_GROUP\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "addgroup --gid $SYMPA_GID $SYMPA_GROUP" >> $_log_file
|
|
addgroup --gid $SYMPA_GID $SYMPA_GROUP >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
echononl "\tAdding User \"$SYMPA_USER\".."
|
|
if ! grep $SYMPA_USER /etc/passwd > /dev/null ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Adding User \"$SYMPA_USER\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "adduser --uid $SYMPA_UID --gid $SYMPA_GID --home $PREFIX --disabled-password \\" >> $_log_file
|
|
echo " --gecos \"Sympa mailing list manager\" $SYMPA_USER" >> $_log_file
|
|
adduser --uid $SYMPA_UID --gid $SYMPA_GID --home $PREFIX --disabled-password \
|
|
--gecos "Sympa mailing list manager" $SYMPA_USER >> $_log_file
|
|
|
|
#echo "adduser --system --home /usr/local/sympa --no-create-home --shell /bin/sh \\" >> $_log_file
|
|
#echo " --gid $SYMPA_GID --uid $SYMPA_UID --gecos \"Sympa mailing list manager\" $SYMPA_USER" >> $_log_file
|
|
#adduser --system --home /usr/local/sympa --no-create-home --shell /bin/sh \
|
|
# --gid $SYMPA_GID --uid $SYMPA_UID --gecos "Sympa mailing list manager" $SYMPA_USER > $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
echo ""
|
|
|
|
## - Sympa alias file
|
|
## -
|
|
if [ -n "$SYMPA_ALIAS_FILE" ]; then
|
|
_dir=`dirname $SYMPA_ALIAS_FILE`
|
|
_create_dir=true
|
|
echononl "\tCreate directory \"$_dir\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Create directory \"$_dir\" (contains sympa alias file).." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if [ ! -d "$_dir" ]; then
|
|
echo "mkdir -p $_dir" $_log_file
|
|
mkdir -p $_dir >> $_log_file
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Creation of dir \"$_dir\" failed!"
|
|
_create_dir=false
|
|
fi
|
|
else
|
|
echo_skipped
|
|
echo "## - \"$_dir\" alredy exists" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
echononl "\tCreate alias file \"$SYMPA_ALIAS_FILE\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Create alias file \"$SYMPA_ALIAS_FILE\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if [ ! -f "$SYMPA_ALIAS_FILE" ]; then
|
|
echo "touch $SYMPA_ALIAS_FILE" >> $_log_file
|
|
touch $SYMPA_ALIAS_FILE >> $_log_file
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Creation of alias file \"$SYMPA_ALIAS_FILE\" failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
echo "## - Alias file \"$SYMPA_ALIAS_FILE\" alredy exists" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
echononl "\tChange group for \"$SYMPA_ALIAS_FILE\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Change group for \"$SYMPA_ALIAS_FILE\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "chgrp $SYMPA_GROUP $SYMPA_ALIAS_FILE" >> $_log_file
|
|
chgrp $SYMPA_GROUP $SYMPA_ALIAS_FILE >> $_log_file
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot set ownerchip ($SYMPA_USER:$SYMPA_GROUP) to \"$SYMPA_ALIAS_FILE\"!"
|
|
fi
|
|
echononl "\tSet permissions on \"$SYMPA_ALIAS_FILE\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Set permissions on \"$SYMPA_ALIAS_FILE\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "chmod 664 $SYMPA_ALIAS_FILE" >> $_log_file
|
|
chmod 664 $SYMPA_ALIAS_FILE >> $_log_file
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot set ownerchip ($SYMPA_USER:$SYMPA_GROUP) to \"$SYMPA_ALIAS_FILE\"!"
|
|
fi
|
|
|
|
|
|
## - Install reqired debian packages
|
|
## -
|
|
|
|
declare -a required_debian_packages_arr
|
|
for _debian_pkg in $_required_debian_packages ; do
|
|
perl_modules_arr+=("$_debian_pkg")
|
|
done
|
|
> ${_logdir}/debian-install.log
|
|
|
|
echo ""
|
|
echo -e "\tInstalling required debian packages .."
|
|
|
|
for _debian_pkg in ${perl_modules_arr[@]} ; do
|
|
|
|
echononl "\t Installing $_debian_pkg .."
|
|
if ! dpkg -l $_debian_pkg 2> /dev/null | grep -e "^ii" > /dev/null 2>&1 ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Installing Debian Package \"$_debian_pkg\" .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - See ${_logdir}/debian-install.log for details" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "apt-get install -q -y $_debian_pkg >> ${_logdir}/debian-install.log 2>&1" >> $_log_file
|
|
|
|
echo "" >> ${_logdir}/debian-install.log
|
|
echo "## - Install $_debian_pkg" >> ${_logdir}/debian-install.log
|
|
|
|
apt-get install -q -y $_debian_pkg >> ${_logdir}/debian-install.log 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Installing debian package \"$_debian_pkg\" failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
done
|
|
|
|
info "After Installation finished, check presens of required perl modules"
|
|
|
|
## - Generate some locales
|
|
##
|
|
echononl "\tConfigure locales used by the system (/etc/locale.gen)"
|
|
echo "" >> $_log_file
|
|
echo "## - Configure locales used by the system (/etc/locale.gen) ..." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
cat <<EOF >> $_log_file
|
|
cat <<END > /etc/locale.gen
|
|
bg_BG CP1251
|
|
cs_CZ ISO-8859-2
|
|
de_DE.UTF-8 UTF-8
|
|
de_DE ISO-8859-1
|
|
el_GR ISO-8859-7
|
|
en_US.UTF-8 UTF-8
|
|
en_US ISO-8859-1
|
|
es_ES ISO-8859-1
|
|
et_EE ISO-8859-1
|
|
eu_ES ISO-8859-1
|
|
fi_FI ISO-8859-1
|
|
fr_FR ISO-8859-1
|
|
hu_HU ISO-8859-2
|
|
it_IT ISO-8859-1
|
|
ja_JP.EUC-JP EUC-JP
|
|
nb_NO ISO-8859-1
|
|
nl_NL ISO-8859-1
|
|
oc_FR ISO-8859-1
|
|
pl_PL ISO-8859-2
|
|
pt_BR ISO-8859-1
|
|
pt_PT ISO-8859-1
|
|
ro_RO ISO-8859-2
|
|
ru_RU ISO-8859-5
|
|
sv_SE ISO-8859-1
|
|
tr_TR ISO-8859-9
|
|
zh_TW BIG5
|
|
zh_CN GB2312
|
|
END
|
|
EOF
|
|
echo "locale-gen" >> $_log_file
|
|
cat <<EOF > /etc/locale.gen
|
|
bg_BG CP1251
|
|
cs_CZ ISO-8859-2
|
|
de_DE.UTF-8 UTF-8
|
|
de_DE ISO-8859-1
|
|
el_GR ISO-8859-7
|
|
en_US.UTF-8 UTF-8
|
|
en_US ISO-8859-1
|
|
es_ES ISO-8859-1
|
|
et_EE ISO-8859-1
|
|
eu_ES ISO-8859-1
|
|
fi_FI ISO-8859-1
|
|
fr_FR ISO-8859-1
|
|
hu_HU ISO-8859-2
|
|
it_IT ISO-8859-1
|
|
ja_JP.EUC-JP EUC-JP
|
|
nb_NO ISO-8859-1
|
|
nl_NL ISO-8859-1
|
|
oc_FR ISO-8859-1
|
|
pl_PL ISO-8859-2
|
|
pt_BR ISO-8859-1
|
|
pt_PT ISO-8859-1
|
|
ro_RO ISO-8859-2
|
|
ru_RU ISO-8859-5
|
|
sv_SE ISO-8859-1
|
|
tr_TR ISO-8859-9
|
|
zh_TW BIG5
|
|
zh_CN GB2312
|
|
EOF
|
|
if [ "$?" = 0 ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Setting locales definition in file \"/etc/locale.gen\" failed!"
|
|
fi
|
|
|
|
|
|
echononl "\tGenerating locales from /etc/locale.gen"
|
|
echo "" >> $_log_file
|
|
echo "## - Generating locales from /etc/locale.gen .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "locale-gen" >> $_log_file
|
|
locale-gen >> $_log_file 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Generating locales from \"/etc/locale.gen\" failed!"
|
|
fi
|
|
|
|
echononl "\tAdd Environment Variable \"PERL5LIB\" to /etc/profile .."
|
|
if ! grep PERL5LIB /etc/profile > /dev/null 2>&1 ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Add Environment Variable \"PERL5LIB\" to /etc/profile .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "echo \"export PERL5LIB=/usr/share/mhonarc\" >> /etc/profile" >> $_log_file
|
|
echo "export PERL5LIB=/usr/share/mhonarc" >> /etc/profile
|
|
if [ "$?" = 0 ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Adding Environment Variable \"PERL5LIB\" to /etc/profile failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
## - Make PERL5LIB also present in that shell
|
|
## -
|
|
export PERL5LIB=/usr/share/mhonarc
|
|
|
|
else
|
|
|
|
# Stop apache webservice
|
|
##
|
|
HTTPD=`realpath $(which httpd) 2>/dev/null`
|
|
if [ -z "$HTTPD" ]; then
|
|
if [ -x "/usr/local/apache2/bin/httpd" ]; then
|
|
HTTPD=`realpath "/usr/local/apache2/bin/httpd"`
|
|
else
|
|
HTTPD=`realpath $(which apache2) 2>/dev/null`
|
|
if [ -z "$HTTPD" ]; then
|
|
fatal 'Command \"httpd\"/\"apache2\" not found!'
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echononl "\tStopping Apache Webserver .."
|
|
_PID=`ps aux | grep "$HTTPD " | grep -e "^root" | grep -v grep | awk '{print$2}'`
|
|
if [ -n "$_PID" ];then
|
|
if $SYSTEMD_EXISTS ; then
|
|
echo "systemctl stop apache2" >> $_log_file
|
|
systemctl stop apache2 >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo "$APACHE_INIT_SCRIPT stop" >> $_log_file
|
|
$APACHE_INIT_SCRIPT stop >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
sleep 2
|
|
_PIDS=`ps aux | grep "$HTTPD " |grep -v grep | awk '{print$2}'`
|
|
|
|
if [ -n "$_PIDS" ]; then
|
|
warn "Found running webserver processes. Going to kill them.."
|
|
for _pid in $_PIDS ; do
|
|
kill -9 $_pid > /dev/null 2>&1
|
|
done
|
|
fi
|
|
|
|
## - Stop Sympa list manager
|
|
## -
|
|
echononl "\tStopping Sympa mailing list manager .."
|
|
if ps -e f | grep ${Prefix}/bin/sympa 2>/dev/null | grep -v grep > /dev/null 2>&1 ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Stopping Sympa mailing list manager .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if $SYSTEMD_EXISTS ; then
|
|
echo "systemctl stop sympa" >> $_log_file
|
|
systemctl stop sympa >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo "${SYMPA_INIT_DIR}/sympa stop" >> $_log_file
|
|
${SYMPA_INIT_DIR}/sympa stop >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
_PIDS=`ps -e f | grep ${PREFIX}/bin/ 2>/dev/null | grep -v grep | awk '{print$1}'`
|
|
|
|
if [ -n "$_PIDS" ]; then
|
|
warn "Found running sympa processes. Going to kill them.."
|
|
for _pid in $_PIDS ; do
|
|
kill -9 $_pid > /dev/null 2>&1
|
|
done
|
|
fi
|
|
|
|
echononl "\tBackup existing installation directory ($PREFIX) .."
|
|
echo "" >> $_log_file
|
|
echo "## - Backup existing installation directory ($PREFIX) .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cp -a $PREFIX ${PREFIX}.${SYMPA_OLD_VERSION}.BAK.$backup_date" >> $_log_file
|
|
cp -a $PREFIX ${PREFIX}.${SYMPA_OLD_VERSION}.$backup_date >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot Backup existing installation directory \"$PREFIX\"!"
|
|
|
|
_proceed=""
|
|
echononl "Type uppercase \"yes\" to proceed anyway: "
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
|
|
echononl "\tBackup existing list directory ($SYMPA_LIST_DATA_DIR) .."
|
|
echo "" >> $_log_file
|
|
echo "## - Backup existing list directory ($SYMPA_LIST_DATA_DIR) .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cp -a $SYMPA_LIST_DATA_DIR ${SYMPA_LIST_DATA_DIR}.$backup_date" >> $_log_file
|
|
cp -a $SYMPA_LIST_DATA_DIR ${SYMPA_LIST_DATA_DIR}.$backup_date >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot Backup existing lists data directory \"$PREFIX\"!"
|
|
|
|
_proceed=""
|
|
echononl "Type uppercase \"yes\" to proceed anyway: "
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
|
|
if [ "$SYMPA_DB_TYPE" == "mysql" ]; then
|
|
echononl "\tDump Database \"$SYMPA_DB_NAME\" .."
|
|
echo "" >> $_log_file
|
|
echo "## - Dump Database \"$SYMPA_DB_NAME\" .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "mysqldump -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p$SYMPA_DB_PASSWD --opt $SYMPA_DB_NAME > ${PREFIX}.${SYMPA_OLD_VERSION}.BAK.${backup_date}/${SYMPA_DB_NAME}-${_date}.sql" >> $_log_file
|
|
#mysqldump -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p$SYMPA_DB_PASSWD --opt $SYMPA_DB_NAME > ${PREFIX}.${SYMPA_OLD_VERSION}.BAK.${_date}/${SYMPA_DB_NAME}-${backup_date}.sql 2>> $_log_file
|
|
mysqldump -h $SYMPA_DB_HOST -u $SYMPA_DB_USER -p$SYMPA_DB_PASSWD --opt $SYMPA_DB_NAME > `dirname ${PREFIX}`/${SYMPA_DB_NAME}.${SYMPA_OLD_VERSION}.${backup_date}.sql 2>> $_log_file
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot Backup existing database \"$SYMPA_DB_NAME\"!"
|
|
|
|
_proceed=""
|
|
echononl "Type uppercase \"yes\" to proceed anyway: "
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
else
|
|
warn "No Backup for database type "$SYMPA_DB_TYPE" implemented."
|
|
_proceed=""
|
|
echononl "Type uppercase \"yes\" to proceed anyway: "
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
|
|
echononl "\tBackup existing init script .."
|
|
echo "" >> $_log_file
|
|
echo "## - Backup existing init script .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cp -a ${SYMPA_INIT_DIR}/sympa ${SYMPA_INIT_DIR}/sympa.$backup_date" >> $_log_file
|
|
cp -a ${SYMPA_INIT_DIR}/sympa ${SYMPA_INIT_DIR}/sympa.$backup_date >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot Backup existing init script \"${SYMPA_INIT_DIR}/sympa\"!"
|
|
|
|
_proceed=""
|
|
echononl "Type uppercase \"yes\" to proceed anyway: "
|
|
read _proceed
|
|
[[ "$_proceed" == "YES" ]] || fatal "Exiting by user request.."
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
echo
|
|
echo -e "\t---"
|
|
echo -e "\t--- Installation of Sympa mailing list server (${SYMPA_VERSION})"
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo -e "## --- Installation of Sympa mailing list server (${SYMPA_VERSION})" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo"" >> $_log_file
|
|
|
|
|
|
echononl "\tMove (backup) existing source directory ..."
|
|
if [ -d "$_builddir" ];then
|
|
echo "" >> $_log_file
|
|
echo "## - Move (backup) existing source directory ..." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "mv $_builddir $_builddir.$backup_date" >> $_log_file
|
|
mv $_builddir $_builddir.$backup_date >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot move (backup) source directory \"${_builddir}\" .."
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
## - Unpack source archive
|
|
## -
|
|
echo "" >> $_log_file
|
|
echo "## - Change into base source directory \"$_src_base_dir\" .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cd $_src_base_dir" >> $_log_file
|
|
cd $_src_base_dir
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Unpack sympa-${SYMPA_VERSION}.tar.gz .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "gzip -dc sympa-${SYMPA_VERSION}.tar.gz | tar xf -" >> $_log_file
|
|
echononl "\tUnpack sympa-${SYMPA_VERSION}.tar.gz .."
|
|
gzip -dc sympa-${SYMPA_VERSION}.tar.gz | tar xf - >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot unpack archive sympa-${SYMPA_VERSION}.tar.gz .."
|
|
fi
|
|
|
|
|
|
## - Configure sympa
|
|
## -
|
|
echo "" >> $_log_file
|
|
echo "## - Change into sympa source directory \"$_builddir\" .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cd $_builddir" >> $_log_file
|
|
cd $_builddir >> $_log_file 2>&1 || fatal "Changing Directory (cd) to \"${_builddir}\" failed!"
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Configure sympa-${SYMPA_VERSION} .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - See ${_logdir}/sympa-configure.log for more details" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tConfiguring sympa-${SYMPA_VERSION} .."
|
|
|
|
config_params=" --prefix=$PREFIX
|
|
--with-initdir=$SYMPA_INIT_DIR
|
|
--with-confdir=$SYMPA_MAIN_CONF_DIR
|
|
--with-expldir=$SYMPA_LIST_DATA_DIR
|
|
--with-aliases_file=$SYMPA_ALIAS_FILE
|
|
--with-user=$SYMPA_USER
|
|
--with-group=$SYMPA_GROUP"
|
|
|
|
cat << EOF >> $_log_file
|
|
LDFLAGS="-s" \\
|
|
./configure $config_params > ${_logdir}/sympa-configure.log 2>&1
|
|
EOF
|
|
|
|
LDFLAGS="-s" \
|
|
./configure $config_params > ${_logdir}/sympa-configure.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Configuring sympa-${SYMPA_VERSION} failed!"
|
|
fi
|
|
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Compiling sympa-${SYMPA_VERSION} .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - See ${_logdir}/sympa-make.log for more details" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "make > ${_logdir}/sympa-make.log 2>&1" >> $_log_file
|
|
echononl "\tCompiling sympa-${SYMPA_VERSION} .."
|
|
make > ${_logdir}/sympa-make.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Compiling sympa-${SYMPA_VERSION} failed!"
|
|
fi
|
|
|
|
## - Notice!
|
|
## -
|
|
## - In case of Updating an existent installation, we have already backuped the
|
|
## - installatio directory.
|
|
## -
|
|
if ! $UPDATE_SYMPA ; then
|
|
echononl "\tBackup existing installation directory.."
|
|
if [ -d "$PREFIX" ];then
|
|
echo "" >> $_log_file
|
|
echo "## - Backup existing installation directory.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "mv $PREFIX $PREFIX.$backup_date" >> $_log_file
|
|
mv $PREFIX $PREFIX.$backup_date >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot move (backup) existing install directory \"${_builddir}\" .."
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
|
|
_successfully=true
|
|
info "Sorry, but you have to install files in an seperate terminal.\n\t After finished, continue with this script."
|
|
echo -e "\tType:"
|
|
echo -e "\t cd $_builddir"
|
|
echo -e "\t make install "
|
|
echo ""
|
|
echononl "Was the installation sucessfully? [yes/no]: "
|
|
read OK
|
|
while [ "X$OK" != "Xyes" -a "X$OK" != "XYes" -a "X$OK" != "XNo" -a "X$OK" != "Xno" ]
|
|
do
|
|
echononl "wrong entry! [yes/no] :"
|
|
read OK
|
|
done
|
|
[ $OK = "Yes" -o $OK = "yes" ] || _successfully=false
|
|
echo ""
|
|
|
|
if ! $_successfully ; then
|
|
echononl "\tInstall previous sympa init script"
|
|
echo_skipped
|
|
echononl "\tReorganize Database.."
|
|
echo_skipped
|
|
echononl "\tRestore Sympa's Installation Directory"
|
|
echo_skipped
|
|
echononl "\tRestore Sympa's List Data Directory"
|
|
echo_skipped
|
|
warn "Moving back to previous installation not yet implemented!"
|
|
fatal "Exiting: Installation was not successfully!"
|
|
fi
|
|
|
|
echononl "\tPerform DB changes an updates of the the configuration files.."
|
|
echo "" >> $_log_file
|
|
echo "## - Perform DB changes an updates of the the configuration files if required." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "${SYMPA_BIN_DIR}/sympa.pl --upgrade" >> $_log_file
|
|
${SYMPA_BIN_DIR}/sympa.pl --upgrade >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "\"${SYMPA_BIN_DIR}/sympa.pl --upgrade\" failed!"
|
|
fi
|
|
|
|
if $SYSTEMD_EXISTS ; then
|
|
echononl "\tReload systemd configuration.."
|
|
echo "" >> $_log_file
|
|
echo "## - Reload systemd configuration.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "systemctl daemon-reload" >> $_log_file
|
|
systemctl daemon-reload >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Reloading systemd configuration failed!"
|
|
fi
|
|
fi
|
|
|
|
else
|
|
echo "" >> $_log_file
|
|
echo "## - Install Sympa mailing list server (v ${SYMPA_VERSION}) .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - See ${_logdir}/sympa-make_install.log for more details" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "make install > ${_logdir}/sympa-make_install.log 2>&1" >> $_log_file
|
|
echononl "\tInstall Sympa mailing list server.."
|
|
make install > ${_logdir}/sympa-make_install.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Installing Sympa mailing list server (v ${SYMPA_VERSION}) failed!"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "\t---"
|
|
echo -e "\t--- Configure Sympa mailing list manager (base configuration)"
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo -e "## --- Configure Sympa mailing list manager (base configuration)" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo"" >> $_log_file
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
info "Configuration will be omitted. \"sympa.conf\" is taken over from existing installation."
|
|
|
|
|
|
#echo -e "\t[ \033[33m\033[1mImportant\033[m ]: For changes which are not compartible with previous versions,"
|
|
#echo " see file \"${_builddir}/NEWS\"."
|
|
#echo " See \"${_builddir}/ChangeLog\" for the full changes log."
|
|
|
|
echo "" >> $_log_file
|
|
|
|
echo "# --- Configuration will be omitted. \"sympa.conf\" is taken over from existing installation." >> $_log_file
|
|
echo "# ---" >> $_log_file
|
|
echo "# --- For changes which are not compartible with previous versions," >> $_log_file
|
|
echo "# --- see file \"${_builddir}/NEWS\"." >> $_log_file
|
|
echo "# ---" >> $_log_file
|
|
echo "# --- See \"${_builddir}/ChangeLog\" for the full changes log." >> $_log_file
|
|
|
|
else
|
|
|
|
_key=domain
|
|
_val=$SYMPA_DOMAIN
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i.ORIG -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i.ORIG -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
## - Replace "@" with "\@"
|
|
## -
|
|
echo "SYMPA_LISTMASTER=\`echo \${SYMPA_LISTMASTER//\\@/\\\\\@}\`" >> $_log_file
|
|
SYMPA_LISTMASTER=`echo ${SYMPA_LISTMASTER//\@/\\\@}`
|
|
|
|
_key=listmaster
|
|
_val=$SYMPA_LISTMASTER
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=wwsympa_url
|
|
_val="$SYMPA_WEB_URL"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=home
|
|
_val="$SYMPA_LIST_DATA_DIR"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_type
|
|
_val="$SYMPA_DB_TYPE"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_name
|
|
_val="$SYMPA_DB_NAME"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_host
|
|
_val="$SYMPA_DB_HOST"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_port
|
|
_val="$SYMPA_DB_PORT"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_user
|
|
_val="$SYMPA_DB_USER"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=db_passwd
|
|
_val="$SYMPA_DB_PASSWD"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=use_fast_cgi
|
|
_val=1
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
_key=lang
|
|
_val="de"
|
|
echo "" >> $_log_file
|
|
echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Add \"merge_feature\" to file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tAdd \"merge_feature\" to file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .."
|
|
echo "cat << EOF > /etc/init.d/sympa
|
|
## merge_feature
|
|
## Customizing messages. If set to 'on', allows the subscribers to send messages with custom users
|
|
## attributes. It also allows the use of sympa variables in message templates, i.e. in message.footer
|
|
merge_feature on
|
|
EOF" >> $_log_file
|
|
cat << EOF >> ${SYMPA_MAIN_CONF_DIR}/sympa.conf
|
|
|
|
## merge_feature
|
|
## Customizing messages. If set to 'on', allows the subscribers to send messages with custom users
|
|
## attributes. It also allows the use of sympa variables in message templates, i.e. in message.footer
|
|
merge_feature on
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Cannot set \"merge_feature\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\" .."
|
|
fi
|
|
|
|
## - Set owner/group for \"sympa.conf\"..
|
|
## -
|
|
echononl "\tSet owner/group for \"sympa.conf\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Set owner/group for \"sympa.conf\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "chown ${SYMPA_USER}:$SYMPA_GROUP ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file
|
|
chown ${SYMPA_USER}:$SYMPA_GROUP ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
fi
|
|
|
|
echo
|
|
echo -e "\t---"
|
|
echo -e "\t--- Some after installation tasks"
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo -e "## --- Some after installation tasks" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo"" >> $_log_file
|
|
|
|
## - Priovide LSB - Add Block for run-time dependencies on Sympa
|
|
## -
|
|
_backup_sympa_initscript=`mktemp`
|
|
_failed=false
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Priovide LSB - Add Block for run-time dependencies to /etc/init.d/sympa .." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
|
|
echononl "\tAdd Block for run-time dependencies to /etc/init.d/sympa .."
|
|
echo "cp /etc/init.d/sympa $_backup_sympa_initscript" >> $_log_file
|
|
cp /etc/init.d/sympa $_backup_sympa_initscript >> $_log_file 2>&1
|
|
if [ "$?" != "0" ]; then
|
|
_failed=true
|
|
fi
|
|
echo "cat << EOF > /etc/init.d/sympa
|
|
#!/bin/sh
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: sympa
|
|
# Required-Start: \\\$remote_fs \\\$syslog
|
|
# Required-Stop: \\\$remote_fs \\\$syslog
|
|
# Should-Start: mysql postgresql
|
|
# Should-Stop: mysql postgresql
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Short-Description: start and stop the SYMPA mailing list manager
|
|
# Description: SYMPA is a mailing list manager
|
|
### END INIT INFO
|
|
|
|
export PERL5LIB=/usr/share/mhonarc
|
|
|
|
EOF" >> $_log_file
|
|
cat << EOF > /etc/init.d/sympa
|
|
#!/bin/sh
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: sympa
|
|
# Required-Start: \$remote_fs \$syslog
|
|
# Required-Stop: \$remote_fs \$syslog
|
|
# Should-Start: mysql postgresql
|
|
# Should-Stop: mysql postgresql
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Short-Description: start and stop the SYMPA mailing list manager
|
|
# Description: SYMPA is a mailing list manager
|
|
### END INIT INFO
|
|
|
|
export PERL5LIB=/usr/share/mhonarc
|
|
|
|
EOF
|
|
if [ "$?" != "0" ]; then
|
|
_failed=true
|
|
fi
|
|
|
|
echo "tail -n +2 "$_backup_sympa_initscript" >> /etc/init.d/sympa" >> $_log_file
|
|
tail -n +2 "$_backup_sympa_initscript" >> /etc/init.d/sympa
|
|
if [ "$?" != "0" ]; then
|
|
_failed=true
|
|
fi
|
|
|
|
echo "rm $_backup_sympa_initscript" >> $_log_file
|
|
rm $_backup_sympa_initscript >> $_log_file 2>&1
|
|
if [ "$?" != "0" ]; then
|
|
_failed=true
|
|
fi
|
|
if $_failed ; then
|
|
echo_failed
|
|
else
|
|
echo_ok
|
|
fi
|
|
|
|
if ! $UPDATE_SYMPA ; then
|
|
if $START_AT_BOOTTIME ; then
|
|
|
|
if `ls /etc/rc2.d/ | grep sympa > /dev/null 2>&1` ; then
|
|
echononl "\tRemove init script links"
|
|
echo "" >> $_log_file
|
|
echo "## - Remove init script links" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "update-rc.d -f sympa remove" >> $_log_file
|
|
|
|
update-rc.d -f sympa remove >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
warn "Removing existing init script links failed."
|
|
fi
|
|
fi
|
|
|
|
## - Make Sympa mailing list manager start at boottime
|
|
## -
|
|
if $SYSTEMD_EXISTS ; then
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Eanbles sympa.service" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echononl "\tEanbles sympa.service"
|
|
echo "systemctl enable sympa" >> $_log_file
|
|
systemctl enable sympa >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Create file /etc/systemd/system/sympa.service failed!"
|
|
fi
|
|
else
|
|
echononl "\tMake Sympa mailing list manager at boottime"
|
|
echo "" >> $_log_file
|
|
echo "## - Make Sympa mailing list manager at boottime" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "update-rc.d sympa defaults" >> $_log_file
|
|
update-rc.d sympa defaults >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Making sympa start at boottime failed."
|
|
fi
|
|
fi # if $SYSTEMD_EXISTS
|
|
fi # if START_AT_BOOTTIME
|
|
fi # if $UPDATE_SYMPA
|
|
|
|
|
|
## - special for debian. set manpath entries
|
|
## -
|
|
if [ -f /etc/manpath.config ];then
|
|
echononl "\tSet manpath entries in /etc/manpath.config"
|
|
if ! grep $SYMPA_MANPATH /etc/manpath.config > /dev/null 2<&1 ; then
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Set manpath entries in /etc/manpath.config" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
|
|
echo "echo >> /etc/manpath.config" >> $_log_file
|
|
echo "echo \"MANDATORY_MANPATH $SYMPA_MANPATH /var/cache/man\" >> /etc/manpath.config" >> $_log_file
|
|
echo "echo \"MANPATH_MAP $SYMPA_BIN_DIR $SYMPA_MANPATH\" >> /etc/manpath.config" >> $_log_file
|
|
echo "echo \"MANDB_MAP $SYMPA_MANPATH /var/cache/man\" >> /etc/manpath.config" >> $_log_file
|
|
|
|
echo >> /etc/manpath.config
|
|
echo "MANDATORY_MANPATH $SYMPA_MANPATH /var/cache/man" >> /etc/manpath.config
|
|
echo "MANPATH_MAP $SYMPA_BIN_DIR $SYMPA_MANPATH" >> /etc/manpath.config
|
|
echo "MANDB_MAP $SYMPA_MANPATH /var/cache/man" >> /etc/manpath.config
|
|
echo_ok
|
|
else
|
|
echo_skipped
|
|
fi
|
|
elif [ -f /etc/man.conf];then
|
|
echononl "\tSet manpath entries in /etc/man.conf"
|
|
if ! grep $SYMPA_MANPATH /etc/man.conf > /dev/null 2<&1 ; then
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Set manpath entries in /etc/man.conf" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
|
|
echo >> /etc/man.conf
|
|
echo "MANPATH $SYMPA_MANPATH /var/cache/man" >> /etc/man.conf
|
|
echo "MANPATH_MAP $SYMPA_BIN_DIR /opt/apache2/man" >> /etc/man.conf
|
|
echo_ok
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
|
|
## - Add ${PREFIX}/bin to the systems PATH variable
|
|
## -
|
|
_checkdir="${PREFIX}/bin"
|
|
if [ -f /etc/profile ]; then
|
|
echononl "\tAdd $_checkdir to the systems PATH variable.."
|
|
if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then
|
|
|
|
echo "" >> $_log_file
|
|
echo "## - Add $_checkdir to the systems PATH variable.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
|
|
echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \\\"\\\\\$check_dir\\\" ];then\n PATH=\\\\\${check_dir}:\\\\\$PATH\nfi\n\n\1#\" /etc/profile > /dev/null 2<&1" >> $_log_file
|
|
|
|
perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
warn "Adding $_checkdir to the systems PATH variable failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
|
|
|
|
echo
|
|
echo -e "\t---"
|
|
echo -e "\t--- Configure Apache Webserver"
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo -e "## --- Configure Apache Webserver" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo"" >> $_log_file
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
info "Configuration will be omitted. No webserver configuration needed in update mode."
|
|
|
|
echo "" >> $_log_file
|
|
|
|
echo "# --- Configuration will be omitted. No webserver configuration needed in update mode." >> $_log_file
|
|
echo "# ---" >> $_log_file
|
|
|
|
else
|
|
|
|
_apache_vhost_added=false
|
|
## - Add VHost Configuration to Apache Webserver
|
|
## -
|
|
echononl "\tAdd VHost Configuration for Apache Webserver.."
|
|
if grep -r $SYMPA_DOMAIN $apache_vhost_dir/* 2>/dev/null |\
|
|
grep -q -i -E "(ServerAlias| ServerName)" 2> /dev/null ; then
|
|
echo_skipped
|
|
warn "Apache VHost Configuration for \"$SYMPA_DOMAIN\" already exists."
|
|
else
|
|
echo "" >> $_log_file
|
|
echo "## - Add VHost Configuration for Apache Webserver...." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cat <<EOF > $apache_vhost_dir/${SYMPA_DOMAIN}.conf
|
|
# - $SYMPA_DOMAIN -#
|
|
|
|
<VirtualHost ${IPv4}:80>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteCond %{HTTPS} !=on
|
|
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
<VirtualHost ${IPv4}:443>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteRule ^/\\\$ /$_wwsympa_dir/ [R]
|
|
|
|
<Directory \"${PREFIX}/bin\">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<Directory \"${PREFIX}/static_content\">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
Alias /static-sympa ${PREFIX}/static_content
|
|
ScriptAlias /wws ${PREFIX}/bin/wwsympa-wrapper.fcgi
|
|
|
|
<Location /$_wwsympa_dir>
|
|
SetHandler fcgid-script
|
|
</Location>
|
|
|
|
SSLEngine on
|
|
|
|
## - HTTP Strict Transport Security (HSTS)
|
|
## -
|
|
## - HSTS tells a browser that the website should only be accessed through
|
|
## - a secure connection. The HSTS header will be remembered by a standard
|
|
## compliant browser for max-age seconds.
|
|
## -
|
|
## - Remember this settings for 1/2 year
|
|
## -
|
|
#Header add Strict-Transport-Security \"max-age=15768000\"
|
|
Header always set Strict-Transport-Security \"max-age=31536000; includeSubDomains\"
|
|
|
|
## - don't support weak ciphers
|
|
SSLHonorCipherOrder On
|
|
SSLCompression Off
|
|
SSLProtocol ALL -SSLv2 -SSLv3
|
|
|
|
SSLCertificateFile ${apache_conf_dir}/server-bundle.crt
|
|
SSLCertificateKeyFile ${apache_conf_dir}/server.key
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
|
|
## ---
|
|
## --- IPv6
|
|
## ---
|
|
|
|
<VirtualHost [${IPv6}]:80>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteCond %{HTTPS} !=on
|
|
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
<VirtualHost [${IPv6}]:443>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteRule ^/\\\$ /$_wwsympa_dir/ [R]
|
|
|
|
<Directory \"${PREFIX}/bin\">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<Directory \"${PREFIX}/static_content\">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
Alias /static-sympa ${PREFIX}/static_content
|
|
ScriptAlias /wws ${PREFIX}/bin/wwsympa-wrapper.fcgi
|
|
|
|
<Location /$_wwsympa_dir>
|
|
SetHandler fcgid-script
|
|
</Location>
|
|
|
|
SSLEngine on
|
|
|
|
## - HTTP Strict Transport Security (HSTS)
|
|
## -
|
|
## - HSTS tells a browser that the website should only be accessed through
|
|
## - a secure connection. The HSTS header will be remembered by a standard
|
|
## compliant browser for max-age seconds.
|
|
## -
|
|
## - Remember this settings for 1/2 year
|
|
## -
|
|
#Header add Strict-Transport-Security \"max-age=15768000\"
|
|
Header always set Strict-Transport-Security \"max-age=31536000; includeSubDomains\"
|
|
|
|
## - don't support weak ciphers
|
|
SSLHonorCipherOrder On
|
|
SSLCompression Off
|
|
SSLProtocol ALL -SSLv2 -SSLv3
|
|
|
|
SSLCertificateFile ${apache_conf_dir}/server-bundle.crt
|
|
SSLCertificateKeyFile ${apache_conf_dir}/server.key
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
EOF" >> $_log_file
|
|
|
|
cat <<EOF > $apache_vhost_dir/${SYMPA_DOMAIN}.conf
|
|
# - $SYMPA_DOMAIN -#
|
|
|
|
<VirtualHost ${IPv4}:80>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteCond %{HTTPS} !=on
|
|
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
<VirtualHost ${IPv4}:443>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteRule ^/\$ /$_wwsympa_dir/ [R]
|
|
|
|
<Directory "${PREFIX}/bin">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<Directory "${PREFIX}/static_content">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
Alias /static-sympa ${PREFIX}/static_content
|
|
ScriptAlias /wws ${PREFIX}/bin/wwsympa-wrapper.fcgi
|
|
|
|
<Location /$_wwsympa_dir>
|
|
SetHandler fcgid-script
|
|
</Location>
|
|
|
|
SSLEngine on
|
|
|
|
## - HTTP Strict Transport Security (HSTS)
|
|
## -
|
|
## - HSTS tells a browser that the website should only be accessed through
|
|
## - a secure connection. The HSTS header will be remembered by a standard
|
|
## compliant browser for max-age seconds.
|
|
## -
|
|
## - Remember this settings for 1/2 year
|
|
## -
|
|
#Header add Strict-Transport-Security "max-age=15768000"
|
|
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
|
|
|
## - don't support weak ciphers
|
|
SSLHonorCipherOrder On
|
|
SSLCompression Off
|
|
SSLProtocol ALL -SSLv2 -SSLv3
|
|
|
|
SSLCertificateFile ${apache_conf_dir}/server-bundle.crt
|
|
SSLCertificateKeyFile ${apache_conf_dir}/server.key
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
|
|
## ---
|
|
## --- IPv6
|
|
## ---
|
|
|
|
<VirtualHost [${IPv6}]:80>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteCond %{HTTPS} !=on
|
|
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
|
|
<VirtualHost [${IPv6}]:443>
|
|
|
|
ServerAdmin admin@oopen.de
|
|
|
|
ServerName $SYMPA_DOMAIN
|
|
|
|
RewriteEngine on
|
|
RewriteRule ^/\$ /$_wwsympa_dir/ [R]
|
|
|
|
<Directory "${PREFIX}/bin">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<Directory "${PREFIX}/static_content">
|
|
AllowOverride none
|
|
Require all granted
|
|
</Directory>
|
|
|
|
Alias /static-sympa ${PREFIX}/static_content
|
|
ScriptAlias /wws ${PREFIX}/bin/wwsympa-wrapper.fcgi
|
|
|
|
<Location /$_wwsympa_dir>
|
|
SetHandler fcgid-script
|
|
</Location>
|
|
|
|
SSLEngine on
|
|
|
|
## - HTTP Strict Transport Security (HSTS)
|
|
## -
|
|
## - HSTS tells a browser that the website should only be accessed through
|
|
## - a secure connection. The HSTS header will be remembered by a standard
|
|
## compliant browser for max-age seconds.
|
|
## -
|
|
## - Remember this settings for 1/2 year
|
|
## -
|
|
#Header add Strict-Transport-Security "max-age=15768000"
|
|
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
|
|
|
## - don't support weak ciphers
|
|
SSLHonorCipherOrder On
|
|
SSLCompression Off
|
|
SSLProtocol ALL -SSLv2 -SSLv3
|
|
|
|
SSLCertificateFile ${apache_conf_dir}/server-bundle.crt
|
|
SSLCertificateKeyFile ${apache_conf_dir}/server.key
|
|
|
|
CustomLog ${apache_log_dir}/${SYMPA_DOMAIN}-access.log combined
|
|
ErrorLog ${apache_log_dir}/${SYMPA_DOMAIN}-error.log
|
|
|
|
</VirtualHost>
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
apache_vhost_added=true
|
|
else
|
|
echo_failed
|
|
fi
|
|
fi
|
|
|
|
if $apache_vhost_added ; then
|
|
_apache_configtest=false
|
|
echononl "\tCheck Apache Configuration"
|
|
echo "" >> $_log_file
|
|
echo "## - Check Apache Configuration" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "apachectl configtest" >> $_log_file
|
|
apachectl configtest >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
_apache_configtest=true
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tGraceful Restart Apache Webserver.."
|
|
if $_apache_configtest ; then
|
|
echo "" >> $_log_file
|
|
echo "## - Graceful Restart Apache Webserver.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "apachectl graceful" >> $_log_file
|
|
apachectl graceful >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
_apache_configtest=true
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
echo -e "\t---"
|
|
echo -e "\t--- Configure Postfix for Sympa Support"
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo -e "## --- Configure Postfix for Sympa Support" >> $_log_file
|
|
echo -e "## ---" >> $_log_file
|
|
echo"" >> $_log_file
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
info "Configuration will be omitted. No mailserver configuration needed in update mode."
|
|
|
|
echo "" >> $_log_file
|
|
|
|
echo "# --- Configuration will be omitted. Noimailserver configuration needed in update mode." >> $_log_file
|
|
echo "# ---" >> $_log_file
|
|
|
|
else
|
|
|
|
## - Configure Postfix
|
|
## -
|
|
if $SYMPA_SUPPORT_MULTIDOMAINS ; then
|
|
|
|
info "Configure Postfix for Sympa Multidomain Support"
|
|
|
|
## - Relay Domains
|
|
## -
|
|
_file_name=sympa_domains
|
|
_parameter_name=relay_domains
|
|
echononl "\tCreate (empty) file \"$_file_name\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Add (empty) file \"$_file_name\" to conf directory \"$POSTFIX_CONF_DIR\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if [ -f "${POSTFIX_CONF_DIR}/$_file_name" ];then
|
|
echo_skipped
|
|
echo "## - File \"$_file_name\" already exists" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
echo "touch ${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
touch ${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Craeting file \"${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
fi
|
|
|
|
echononl "\tCreate concerning db-file \"${POSTFIX_CONF_DIR}/${_file_name}.db\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Create concerning db-file \"${POSTFIX_CONF_DIR}/${_file_name}.db\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "postmap btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
postmap btree:${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "\"postmap btree:${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
|
|
echononl "\tConfigure postfix parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add entry for \"$_file_name\" to postfix parameter ${_parameter_name}.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${POSTFIX_CONF_DIR}/$_file_name" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
else
|
|
if grep -q -e "^$_parameter_name" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i.bak -n -p -e \"s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#\" \\" >> $_log_file
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf">> $_log_file
|
|
perl -i.bak -n -p -e "s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${_file_name} failed!"
|
|
fi
|
|
else
|
|
cat <<EOF >> ${POSTFIX_CONF_DIR}/main.cf
|
|
|
|
# ---
|
|
# Added for Sympa Mailing Lists (suports multidomain)
|
|
# ---
|
|
$_parameter_name =
|
|
btree:${POSTFIX_CONF_DIR}/$_file_name
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${_file_name} failed!"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
msg_postfix="$msg_postfix\t btree:${POSTFIX_CONF_DIR}/$_file_name\033[m\n\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name =" >> $_log_file
|
|
echo "## - btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
|
|
#echo_skipped
|
|
#warn "Parameter \"$_parameter_name\" was not found in postfix configuration file \"main.cf\"."
|
|
##echo -e "\t Configure $_parameter_name manually. Add to ${POSTFIX_CONF_DIR}/main.cf:\n"
|
|
#msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
#msg_postfix="$msg_postfix\t btree:${POSTFIX_CONF_DIR}/$_file_name\033[m\n\n"
|
|
#echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
#echo "## -" >> $_log_file
|
|
#echo "## - $_parameter_name =" >> $_log_file
|
|
#echo "## - btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
#echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
|
|
## - Forward addresses (postmaster|abuse)@sympa-domain.tld) using virtual_alias_maps
|
|
## -
|
|
_file_name=sympa_virtual_aliases
|
|
_parameter_name=virtual_alias_maps
|
|
echononl "\tCreate file \"$_file_name\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Add (empty) file \"$_file_name\" to conf directory \"$POSTFIX_CONF_DIR\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if [ -f ${POSTFIX_CONF_DIR}/$_file_name ];then
|
|
echo_skipped
|
|
echo "## - \"$_file_name\" already exists" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
#echo "touch ${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
#touch ${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
echo "echo \"/^(.*)-owner\\\\@(.*)\$/ \$1+owner@\$2\"" >> $_log_file
|
|
echo "/^(.*)-owner\\@(.*)\$/ \$1+owner@\$2" > ${POSTFIX_CONF_DIR}/$_file_name
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Craeting file \"${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
fi
|
|
|
|
echononl "\tConfigure postfix parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add entry for \"$_file_name\" to postfix parameter ${_parameter_name}.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${POSTFIX_CONF_DIR}/$_file_name" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured ." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
if grep -q -e "^$_parameter_name" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^${_parameter_name}.*$)#\1\n regexp:${POSTFIX_CONF_DIR}/$_file_name#\" \\" >> $_log_file
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^${_parameter_name}.*)#\1\n regexp:${POSTFIX_CONF_DIR}/$_file_name#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
if grep -q -e "^relay_domains" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^relay_domains.*)#$_parameter_name = \n regexp:${POSTFIX_CONF_DIR}/$_file_name\n\n\1#\" \\">> $_log_file 2>&1
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^relay_domains.*)#$_parameter_name = \n regexp:${POSTFIX_CONF_DIR}/$_file_name\n\n\1#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "Parameter \"$_parameter_name\" was not found in postfix configuration file \"main.cf\"."
|
|
#echo -e "\t Configure $_parameter_name manually. Add to ${POSTFIX_CONF_DIR}/main.cf:\n"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
msg_postfix="$msg_postfix\t regexp:${POSTFIX_CONF_DIR}/$_file_name\033[m\n\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name =" >> $_log_file
|
|
echo "## - regexp:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
echo ""
|
|
|
|
## - Add transport for Sympa Domains to /etc/postfix/master.cf
|
|
## -
|
|
echononl "\tAdd transport declaration for sympa domains to file master.cf"
|
|
if grep -q -e "^sympa\ " ${POSTFIX_CONF_DIR}/master.cf 2>> /dev/null ; then
|
|
echo_skipped
|
|
else
|
|
echo "" >> $_log_file
|
|
echo "## - Add transport declaration for sympa domains to file master.cf" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "cat <<EOF >> ${POSTFIX_CONF_DIR}/master.cf
|
|
|
|
sympa unix - n n - - pipe
|
|
flags=FR user=sympa argv=${PREFIX}/bin/queue \\\${recipient}
|
|
sympabounce unix - n n - - pipe
|
|
flags=FR user=sympa argv=${PREFIX}/bin/bouncequeue \\\${user}
|
|
EOF" >> $_log_file
|
|
|
|
cat <<EOF >> ${POSTFIX_CONF_DIR}/master.cf
|
|
|
|
sympa unix - n n - - pipe
|
|
flags=FR user=sympa argv=${PREFIX}/bin/queue \${recipient}
|
|
sympabounce unix - n n - - pipe
|
|
flags=FR user=sympa argv=${PREFIX}/bin/bouncequeue \${user}
|
|
|
|
EOF
|
|
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Adding transport declaration for sympa domains to \"${POSTFIX_CONF_DIR}/master.cf\" failed!"
|
|
fi
|
|
fi
|
|
|
|
_parameter_name=sympa_destination_recipient_limit
|
|
_parameter_val=1
|
|
echononl "\tConfigure postfix (specific) parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add postfix parameter \"${_parameter_name} = ${_parameter_val}\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${_parameter_name}" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
if grep -q -e "^relay_domains" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^relay_domains.*)#$_parameter_name = ${_parameter_val}\n\n\1#\" \\" >> $_log_file 2>&1
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^relay_domains.*)#$_parameter_name = ${_parameter_val}\n\n\1#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "Parameter \"$_parameter_name\" was not found in postfix configuration file \"main.cf\"."
|
|
#echo -e "\t Configure $_parameter_name manually. Add to ${POSTFIX_CONF_DIR}/main.cf:\n"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m${_parameter_name} = ${_parameter_val}\033[m\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name = $_parameter_val" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
|
|
_parameter_name=sympabounce_destination_recipient_limit
|
|
_parameter_val=1
|
|
echononl "\tConfigure postfix (specific) parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add postfix parameter \"${_parameter_name} = ${_parameter_val}\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${_parameter_name}" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
if grep -q -e "^relay_domains" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^relay_domains.*)#$_parameter_name = ${_parameter_val}\n\n\1#\" \\" >> $_log_file 2>&1
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^relay_domains.*)#$_parameter_name = ${_parameter_val}\n\n\1#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "Parameter \"$_parameter_name\" was not found in postfix configuration file \"main.cf\"."
|
|
#echo -e "\t Configure $_parameter_name manually. Add to ${POSTFIX_CONF_DIR}/main.cf:\n"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m${_parameter_name} = ${_parameter_val}\033[m\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name = $_parameter_val" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
|
|
|
|
## - Configure Parameter "transport_maps" for Sympa domains
|
|
## -
|
|
_file_name=sympa_transport
|
|
_parameter_name=transport_maps
|
|
echononl "\tCreate (empty) file \"$_file_name\".."
|
|
if [ -f ${POSTFIX_CONF_DIR}/$_file_name ];then
|
|
echo_skipped
|
|
else
|
|
echo "" >> $_log_file
|
|
echo "## - Add (empty) file \"$_file_name\" to conf directory \"$POSTFIX_CONF_DIR\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "touch ${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
touch ${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Craeting file \"${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
fi
|
|
|
|
echononl "\tConfigure postfix parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add entry for \"$_file_name\" to postfix parameter ${_parameter_name}.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${POSTFIX_CONF_DIR}/$_file_name" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
if grep -q -e "^$_parameter_name" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^${_parameter_name}.*$)#\1\n regexp:${POSTFIX_CONF_DIR}/$_file_name#\" \\" >> $_log_file
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^${_parameter_name}.*)#\1\n regexp:${POSTFIX_CONF_DIR}/$_file_name#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
if grep -q -e "^relay_domains" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i -n -p -e \"s#(^relay_domains.*)#$_parameter_name = \n regexp:${POSTFIX_CONF_DIR}/$_file_name\n\n\1#\" \\" >> $_log_file 2>&1
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf" >> $_log_file
|
|
perl -i -n -p -e "s#(^relay_domains.*)#$_parameter_name = \n regexp:${POSTFIX_CONF_DIR}/$_file_name\n\n\1#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix $_parameter_name for $_file_name failed!"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "Parameter \"$_parameter_name\" was not found in postfix configuration file \"main.cf\"."
|
|
#echo -e "\t Configure $_parameter_name manually. Add to ${POSTFIX_CONF_DIR}/main.cf:\n"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
msg_postfix="$msg_postfix\t regexp:${POSTFIX_CONF_DIR}/$_file_name\033[m\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name =" >> $_log_file
|
|
echo "## - regexp:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
|
|
info "Configure Postfix for Sympa Single Domain Support"
|
|
|
|
## - Sympa Alias File
|
|
## -
|
|
_file_name=`basename $SYMPA_ALIAS_FILE`
|
|
_parameter_name=alias_maps
|
|
echononl "\tCreate (empty) file \"$_file_name\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Add (empty) file \"$_file_name\" to conf directory \"$POSTFIX_CONF_DIR\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if [ -f "${POSTFIX_CONF_DIR}/$_file_name" ];then
|
|
echo_skipped
|
|
echo "## - File \"$_file_name\" already exists" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
else
|
|
echo "touch ${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
touch ${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Craeting file \"${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
fi
|
|
|
|
echononl "\tCreate concerning db-file \"${POSTFIX_CONF_DIR}/${_file_name}.db\".."
|
|
echo "" >> $_log_file
|
|
echo "## - Create concerning db-file \"${POSTFIX_CONF_DIR}/${_file_name}.db\".." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "postmap btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
postmap btree:${POSTFIX_CONF_DIR}/$_file_name >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "\"postmap btree:${POSTFIX_CONF_DIR}/$_file_name\" failed!"
|
|
fi
|
|
|
|
echononl "\tConfigure postfix parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add entry for \"$_file_name\" to postfix parameter ${_parameter_name}.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if grep -e "${POSTFIX_CONF_DIR}/$_file_name" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
| grep -q -v -e"^#" 2>> $_log_file ; then
|
|
echo_skipped
|
|
echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
else
|
|
if grep -q -e "^$_parameter_name" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i.bak -n -p -e \"s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#\" \\" >> $_log_file
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf">> $_log_file
|
|
perl -i.bak -n -p -e "s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${filename} failed!"
|
|
fi
|
|
else
|
|
cat <<EOF >> ${POSTFIX_CONF_DIR}/main.cf
|
|
|
|
# ---
|
|
# Added for Sympa Mailing Lists
|
|
# ---
|
|
${_parameter_name} =
|
|
btree:${POSTFIX_CONF_DIR}/$_file_name
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${_file_name} failed!"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
msg_postfix="$msg_postfix\t btree:${POSTFIX_CONF_DIR}/$_file_name\033[m\n\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name =" >> $_log_file
|
|
echo "## - btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
|
|
_parameter_name=alias_database
|
|
echononl "\tConfigure postfix parameter ${_parameter_name}.."
|
|
echo "" >> $_log_file
|
|
echo "## - Add entry for \"$_file_name\" to postfix parameter ${_parameter_name}.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
#if grep -e "${POSTFIX_CONF_DIR}/$_file_name" ${POSTFIX_CONF_DIR}/main.cf 2>> $_log_file \
|
|
# | grep -q -v -e"^#" 2>> $_log_file ; then
|
|
# echo_skipped
|
|
# echo "## - Postfix parameter \"$_parameter_name\" is already configured." >> $_log_file
|
|
# echo "## -" >> $_log_file
|
|
# info "Postfix parameter \"$_parameter_name\" is already configured."
|
|
#else
|
|
if grep -q -e "^$_parameter_name" ${POSTFIX_CONF_DIR}/main.cf 2>> /dev/null ; then
|
|
echo "perl -i.bak -n -p -e \"s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#\" \\" >> $_log_file
|
|
echo " ${POSTFIX_CONF_DIR}/main.cf">> $_log_file
|
|
perl -i.bak -n -p -e "s#(^${_parameter_name}.*)#\1\n btree:${POSTFIX_CONF_DIR}/${_file_name}#" \
|
|
${POSTFIX_CONF_DIR}/main.cf >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${filename} failed!"
|
|
fi
|
|
else
|
|
cat <<EOF >> ${POSTFIX_CONF_DIR}/main.cf
|
|
|
|
# ---
|
|
# Added for Sympa Mailing Lists
|
|
# ---
|
|
${_parameter_name} =
|
|
btree:${POSTFIX_CONF_DIR}/$_file_name
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Configure postfix main.cf for ${_file_name} failed!"
|
|
msg_postfix="$msg_postfix\t \033[37m\033[1m$_parameter_name =\n"
|
|
msg_postfix="$msg_postfix\t btree:${POSTFIX_CONF_DIR}/$_file_name\033[m\n\n"
|
|
echo "## - Add to ${POSTFIX_CONF_DIR}/main.cf:" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
echo "## - $_parameter_name =" >> $_log_file
|
|
echo "## - btree:${POSTFIX_CONF_DIR}/$_file_name" >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
fi
|
|
|
|
fi
|
|
#fi
|
|
|
|
fi
|
|
|
|
|
|
## - Reload postfix configuration
|
|
## -
|
|
echononl "\tReload Postfix.."
|
|
echo "" >> $_log_file
|
|
echo "## - Reload Postfix.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if $SYSTEMD_EXISTS ; then
|
|
echo "systemctl reload postfix" >> $_log_file
|
|
systemctl reload postfix >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Reloading Postfix SMTP-Server failed!"
|
|
fi
|
|
else
|
|
echo "/etc/init.d/postfix reload" >> $_log_file
|
|
/etc/init.d/postfix reload >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Reloading Postfix SMTP-Server failed!"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
## - Start Sympa mailing list manager
|
|
## -
|
|
|
|
echo ""
|
|
echo -e "\t---"
|
|
echo -e "\t--- Starting Sympa mailing list manager .."
|
|
echo -e "\t---"
|
|
echo""
|
|
|
|
echo "" >> $_log_file
|
|
echo "" >> $_log_file
|
|
echo "## ---" >> $_log_file
|
|
echo "## --- Starting Sympa mailing list manager .." >> $_log_file
|
|
echo "## ---" >> $_log_file
|
|
echo "" >> $_log_file
|
|
if $SYSTEMD_EXISTS ; then
|
|
|
|
echononl "\tReload systemd configuration"
|
|
echo "systemctl daemon-reload" >> $_log_file
|
|
systemctl daemon-reload >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Reloading systemd configuration failed!"
|
|
fi
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
echononl "\tRestarting Sympa mailing list manager .."
|
|
echo "" >> $_log_file
|
|
echo "systemctl restart sympa" >> $_log_file
|
|
systemctl restart sympa >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Restarting Sympa mailing list manager failed!"
|
|
fi
|
|
else
|
|
echononl "\tStarting Sympa mailing list manager .."
|
|
echo "" >> $_log_file
|
|
echo "systemctl start sympa" >> $_log_file
|
|
systemctl start sympa >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Starting Sympa mailing list manager failed!"
|
|
fi
|
|
fi
|
|
|
|
else
|
|
if $UPDATE_SYMPA ; then
|
|
echononl "\tRestarting Sympa mailing list manager .."
|
|
echo "" >> $_log_file
|
|
echo "${SYMPA_INIT_DIR}/sympa restart" >> $_log_file
|
|
${SYMPA_INIT_DIR}/sympa restart >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Restarting Sympa mailing list manager failed!"
|
|
fi
|
|
else
|
|
echononl "\tStarting Sympa mailing list manager .."
|
|
echo "" >> $_log_file
|
|
echo "${SYMPA_INIT_DIR}/sympa start" >> $_log_file
|
|
${SYMPA_INIT_DIR}/sympa start >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "Starting Sympa mailing list manager failed!"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
|
|
echononl "\tStart Apache Webserver"
|
|
echo "" >> $_log_file
|
|
echo "## - Start Apache Webserver.." >> $_log_file
|
|
echo "## -" >> $_log_file
|
|
if $SYSTEMD_EXISTS ; then
|
|
echo "systemctl start apache2" >> $_log_file
|
|
systemctl start apache2 >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
_apache_configtest=true
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
else
|
|
echo "$APACHE_INIT_SCRIPT start" >> $_log_file
|
|
$APACHE_INIT_SCRIPT start >> $_log_file 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
echo ""
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mImportant\033[m ]: Take care, that all needed perl modules are installed!"
|
|
echo " You can check this by running \"$SYMPA_BIN_DIR/sympa_wizard.pl --check\"."
|
|
echo " Running this script allows you, to install missing modules."
|
|
|
|
if $UPDATE_SYMPA ; then
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mImportant\033[m ]: For changes which are not compartible with previous versions,"
|
|
echo " see file \"${_builddir}/NEWS\"."
|
|
echo " See \"${_builddir}/ChangeLog\" for the full changes log."
|
|
echo ""
|
|
fi
|
|
if [ -n "$msg_postfix" ]; then
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mImportant\033[m ]: To support multidomains, you have to add the following entries"
|
|
echo " to postfix configuration \"${POSTFIX_CONF_DIR}/main.cf\":"
|
|
echo ""
|
|
echo -e "$msg_postfix"
|
|
fi
|
|
|
|
echo ""
|
|
clean_up 0
|