install_update_dovecot-2.4.sh: intermediate version.
This commit is contained in:
@ -329,6 +329,8 @@ fi
|
||||
|
||||
_log_dir=${_src_base_dir}/log-dovecot-$_version
|
||||
|
||||
if [[ $dovecot_major_version -eq 2 ]] && [[ $dovecot_minor_version -lt 4 ]] ; then
|
||||
|
||||
echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
echo ""
|
||||
@ -345,6 +347,12 @@ do
|
||||
fi
|
||||
done
|
||||
|
||||
else
|
||||
|
||||
_pigeonhole=${_version}
|
||||
|
||||
fi
|
||||
|
||||
|
||||
echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
@ -452,7 +460,7 @@ echo ""
|
||||
echo -e "\tCertificat base directory.....: $cert_base_dir"
|
||||
echo -e "\tServer certificate............: $server_cert"
|
||||
echo -e "\tServer key....................: $server_key"
|
||||
if [[ $dovecot_major_version -ge 3 ]] \
|
||||
if [[ $dovecot_major_version -gt 2 ]] \
|
||||
|| ( [[ $dovecot_major_version -eq 2 ]] && [[ $dovecot_minor_version -ge 3 ]] ); then
|
||||
echo -e "\tDH Parameters file............: $dh_pem_file"
|
||||
fi
|
||||
@ -476,6 +484,186 @@ echo ""
|
||||
echo -e "\tInstall Plugin 'expire'.......: $plugin_expire"
|
||||
echo ""
|
||||
|
||||
INSTALL_UPDATE_ENVIRONMENT_FILE="${_src_base_dir}/conf/install_update_dovecot-2.4..env"
|
||||
cat <<EOF > ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
#!/usr/bin/env bash
|
||||
|
||||
EOF
|
||||
|
||||
echo "_version=\"${_version}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
cat <<EOF >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
log_file="${log_file}"
|
||||
|
||||
backup_date="${backup_date}"
|
||||
|
||||
_backup_crontab_file="${_backup_crontab_file}"
|
||||
|
||||
rc_done="${rc_done}"
|
||||
rc_failed="${rc_failed}"
|
||||
rc_skipped="${rc_skipped}"
|
||||
rc_wait="${rc_wait}"
|
||||
|
||||
clean_up() {
|
||||
|
||||
|
||||
if [[ -f "\$_backup_crontab_file" ]]; then
|
||||
|
||||
echononl "(Re)Install previously saved crontab from '\$_backup_crontab_file'.."
|
||||
|
||||
crontab \$_backup_crontab_file >> \$log_file 2>&1
|
||||
|
||||
if [[ \$? -eq 0 ]]; then
|
||||
echo -e "\$rc_done"
|
||||
else
|
||||
echo -e "\$rc_failed"
|
||||
error "\$(cat \$log_file)"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Perform program exit housekeeping
|
||||
rm -f $log_file
|
||||
blank_line
|
||||
exit $1
|
||||
}
|
||||
|
||||
echononl(){
|
||||
echo X\\c > /tmp/shprompt\$\$
|
||||
if [ \`wc -c /tmp/shprompt\$\$ | awk '{print \$1}'\` -eq 1 ]; then
|
||||
echo -e "\$*\\c" 1>&2
|
||||
else
|
||||
echo -en "\$*" 1>&2
|
||||
fi
|
||||
rm /tmp/shprompt\$\$
|
||||
}
|
||||
|
||||
fatal(){
|
||||
echo ""
|
||||
echo -e "\t[ \033[31m\033[1mFatal\033[m ]: \033[37m\033[1m\$*\033[m"
|
||||
echo ""
|
||||
echo -e "\t\033[31m\033[1m Skript wird abgebrochen\033[m\033[m\n"
|
||||
rm -f \$log_file
|
||||
clean_up 1
|
||||
}
|
||||
|
||||
error(){
|
||||
echo ""
|
||||
echo -e "\t[ \033[31m\033[1mError\033[m ]: \$*"
|
||||
echo ""
|
||||
}
|
||||
|
||||
warn(){
|
||||
echo ""
|
||||
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: \$*"
|
||||
echo ""
|
||||
}
|
||||
|
||||
info(){
|
||||
echo ""
|
||||
echo -e "\t[ \033[32m\033[1mInfo\033[m ]: \$*"
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
||||
blank_line() {
|
||||
echo ""
|
||||
}
|
||||
|
||||
echo_ok() {
|
||||
echo -e "\033[71G[ \033[32mok\033[m ]"
|
||||
}
|
||||
echo_failed(){
|
||||
echo -e "\033[71G[ \033[1;31mfailed\033[m ]"
|
||||
}
|
||||
echo_skipped() {
|
||||
echo -e "\033[71G[ \033[33m\033[1mskipped\033[m ]"
|
||||
}
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
echo "dovecot_main_version=${dovecot_main_version}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dovecot_major_version=${dovecot_major_version}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dovecot_minor_version=${dovecot_minor_version}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dovecot_patch_level=${dovecot_patch_level}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dovecot_minor_patch_level=${dovecot_minor_patch_level}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "_pigeonhole=\"${_pigeonhole}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "postmaster_address=\"${postmaster_address}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "systemd_support=${systemd_support}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "_src_base_dir=\"${_src_base_dir}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "postfix_main_cf=\"${postfix_main_cf}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "hostname=\"${hostname}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "ipv4=\"${ipv4}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "ipv6"=\"${ipv6}\" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "imap_listener_adresses=\"${imap_listener_adresses}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "imaps_listener_adresses=\"${imaps_listener_adresses}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "pop_listener_adresses=\"${pop_listener_adresses}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "pops_listener_adresses=\"${pops_listener_adresses}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "xmpp_listener=${xmpp_listener}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
if $xmpp_listener ; then
|
||||
echo "xmpp_listener_addresses=\"${xmpp_listener_addresses}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "xmpp_listener_port=\"${xmpp_listener_port}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
fi
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "database=\"${database}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dbhost=\"${dbhost}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dbname=\"${dbuser}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dbuser=\"${dbuser}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "dbpassword=\"${dbpassword}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "PGPASSWORD=\"${dbpassword}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "MYSQL_CREDENTIALS=\"${DEFAULT_MYSQL_CREDENTIALS}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
|
||||
echo "default_pass_scheme=\"${default_pass_scheme}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "cert_base_dir=\"${cert_base_dir}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "server_cert=\"${server_cert}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "server_key=\"${server_key}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
if [[ $dovecot_major_version -ge 3 ]] \
|
||||
|| ( [[ $dovecot_major_version -eq 2 ]] && [[ $dovecot_minor_version -ge 3 ]] ); then
|
||||
echo "dh_pem_file=\"${dh_pem_file}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
fi
|
||||
echo "imap_cert=\"${imap_cert}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "imap_key=\"${imap_key}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "pop_cert=\"${pop_cert}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "pop_key=\"${pop_key}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "spam_folder=\"${spam_folder}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
echo "max_userip_connections"=${max_userip_connections} >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
echo "plugin_expire=${plugin_expire}" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
#echo "" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
|
||||
if ! $update ;then
|
||||
if [[ "$database" = "psql" ]] || [[ "$database" = "postgres" ]]; then
|
||||
warn "Take care, your PostgreSQL configuration (pg_hba.conf) contains the following line:\n\n\t pg_hba.conf:\n\t \033[1mlocal all postfix trust\033[m"
|
||||
@ -563,53 +751,10 @@ if $_new ; then
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
# echo ""
|
||||
# echo "--"
|
||||
# echo ""
|
||||
# echo "Gib den Benutzernamen des/eines MySQL root user an.."
|
||||
# echo ""
|
||||
# _MYSQL_ROOT_USER=root
|
||||
# MYSQL_ROOT_USER=
|
||||
# while [ "X$MYSQL_ROOT_USER" = "X" ]
|
||||
# do
|
||||
# echononl "MySQL-User [${_MYSQL_ROOT_USER}]: "
|
||||
# read MYSQL_ROOT_USER
|
||||
# if [ "X$MYSQL_ROOT_USER" = "X" ]; then
|
||||
# MYSQL_ROOT_USER=$_MYSQL_ROOT_USER
|
||||
# fi
|
||||
# done
|
||||
#
|
||||
#
|
||||
# echo ""
|
||||
# echo "--"
|
||||
# echo ""
|
||||
# echo "Gib ein Passwort für den root user an.."
|
||||
# echo ""
|
||||
# _MYSQL_ROOT_PW_1="X"
|
||||
# _MYSQL_ROOT_PW_2="Y"
|
||||
# while [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ]
|
||||
# do
|
||||
# echononl "Passworteingabe: "
|
||||
# read -s _MYSQL_ROOT_PW_1
|
||||
# echo
|
||||
# if [ "X$_MYSQL_ROOT_PW_1" = "X" ]; then
|
||||
# echo -e "\n\t\033[33m\033[1mPassworteingabe erforderlich!\033[m\n"
|
||||
# continue
|
||||
# fi
|
||||
# echononl "Passwortwiederholung: "
|
||||
# read -s _MYSQL_ROOT_PW_2
|
||||
# echo
|
||||
# if [ "X$_MYSQL_ROOT_PW_2" = "X" ]; then
|
||||
# echo -e "\n\t\033[33m\033[1mPasswortwiederholung erforderlich!\033[m\n"
|
||||
# continue
|
||||
# fi
|
||||
# if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then
|
||||
# echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n"
|
||||
# else
|
||||
# MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1
|
||||
# fi
|
||||
# done
|
||||
# MYSQL_CREDENTIALS="-u ${MYSQL_ROOT_USER} -p${MYSQL_ROOT_PW}"
|
||||
if [[ "${MYSQL_CREDENTIALS}" != "${DEFAULT_MYSQL_CREDENTIALS}" ]] ; then
|
||||
echo "MYSQL_CREDENTIALS=\"${MYSQL_CREDENTIALS}\"" >> ${INSTALL_UPDATE_ENVIRONMENT_FILE}
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -1102,7 +1247,7 @@ fi
|
||||
|
||||
cd ${_src_base_dir}
|
||||
echo ""
|
||||
echononl "\tExtracting dovecot-${dovecot_main_version}-pigeonhole-${_pigeonhole}.tar.gz.."
|
||||
echononl "\tExtracting ${dovecot_pigeonhole_archiv}.."
|
||||
gunzip < ${_src_base_dir}/${dovecot_pigeonhole_archiv} | tar -C ${_src_base_dir} -xf -
|
||||
if [ "$?" = 0 ]; then
|
||||
echo -e "$rc_done"
|
||||
@ -1146,16 +1291,42 @@ fi
|
||||
## -----------------
|
||||
## --- Configure dovecot services
|
||||
|
||||
_failed=false
|
||||
echo ""
|
||||
echo -e "\033[1mConfigure Dovecot\033[m.."
|
||||
#echo ""
|
||||
#echo -e "\033[1mConfigure Dovecot\033[m.."
|
||||
|
||||
blank_line
|
||||
|
||||
|
||||
## - Copy example config files to the config directory
|
||||
## -
|
||||
echononl "Copy example config files to the config directory.."
|
||||
if [[ ${dovecot_major_version} -eq 2 ]] && [[ ${dovecot_minor_version} -lt 4 ]] ; then
|
||||
cp -r /usr/local/dovecot-${_version}/share/doc/dovecot/example-config/* \
|
||||
/usr/local/dovecot-${_version}/etc/dovecot/
|
||||
/usr/local/dovecot-${_version}/etc/dovecot/ > /dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
echo -e "$rc_done"
|
||||
else
|
||||
echo -e "$rc_failed"
|
||||
error Compiling Pigeonhole ManageSieve failed
|
||||
fi
|
||||
else
|
||||
echo -e "$rc_skipped"
|
||||
fi
|
||||
|
||||
|
||||
echononl "Backup main configuration file 'dovecot.conf'.."
|
||||
if [[ -f "/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf" ]] ; then
|
||||
cp -a /usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf \
|
||||
/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf.ORIG > /dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
echo -e "$rc_done"
|
||||
else
|
||||
echo -e "$rc_failed"
|
||||
error Compiling Pigeonhole ManageSieve failed
|
||||
fi
|
||||
else
|
||||
echo -e "$rc_skipped"
|
||||
fi
|
||||
|
||||
|
||||
blank_line
|
||||
@ -1173,7 +1344,183 @@ done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
|
||||
|
||||
_failed=false
|
||||
if [[ $dovecot_major_version -gt 2 ]] \
|
||||
|| ( [[ $dovecot_major_version -eq 2 ]] && [[ $dovecot_minor_version -gt 3 ]] ); then
|
||||
|
||||
# - edit /usr/local/dovecot/etc/dovecot/dovecot.conf
|
||||
# -
|
||||
# - protocols {
|
||||
# - imap = yes
|
||||
# - lmtp = yes
|
||||
# - pop3 = yes
|
||||
# - sieve = yes
|
||||
# - }
|
||||
# -
|
||||
# - base_dir = /run/dovecot
|
||||
# - state_dir = /run/dovecot
|
||||
# -
|
||||
# - listen = $ipv4 $ipv6
|
||||
# -
|
||||
# - mail_home = /var/vmail/%{user | domain}/%{user | username}
|
||||
# - mail_path = ~/Maildir
|
||||
# - mail_driver = Maildir
|
||||
# -
|
||||
# - shutdown_clients = no
|
||||
# -
|
||||
_conf_file="/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf"
|
||||
|
||||
_protocols_block="protocols {\n imap = yes\n lmtp = yes\n pop3 = yes\n sieve = yes\n}"
|
||||
if [[ -n "$ipv6" ]]; then
|
||||
_listen="$ipv4 $ipv6"
|
||||
else
|
||||
_listen="$ipv4"
|
||||
fi
|
||||
_base_dir="/run/dovecot"
|
||||
_state_dir="/run/dovecot"
|
||||
|
||||
_mail_home="/var/vmail/%{user | domain}/%{user | username}"
|
||||
_mail_driver="Maildir"
|
||||
_mail_path="~/Maildir"
|
||||
|
||||
_shutdown_clients="no"
|
||||
|
||||
echononl "\tAdjust file dovecot.conf.."
|
||||
|
||||
# # Delete all lines that begin with !include and also delete the following line
|
||||
# # if it is empty or contains only whitespace.
|
||||
# #
|
||||
# sed -i '/^!include/ {
|
||||
# N
|
||||
# /^\(!include.*\n[[:space:]]*\)$/d
|
||||
# /^!include.*/d
|
||||
# }' "${_conf_file}" || _failed=true
|
||||
|
||||
# Delete all lines beginning with !include, together with all comment lines
|
||||
# directly preceding it (#...) - even several in a row, and also the line
|
||||
# following it if it is empty or only contains whitespace.
|
||||
#
|
||||
awk '
|
||||
{
|
||||
zeile[NR] = $0
|
||||
typ[NR] = "keep"
|
||||
if ($0 ~ /^[[:space:]]*#/) typ[NR] = "comment"
|
||||
if ($0 ~ /^[[:space:]]*$/) typ[NR] = "empty"
|
||||
if ($0 ~ /^[[:space:]]*!include/) typ[NR] = "include"
|
||||
}
|
||||
|
||||
END {
|
||||
for (i = 1; i <= NR; i++) {
|
||||
if (typ[i] == "include") {
|
||||
# Vorherige Kommentarzeilen löschen
|
||||
j = i - 1
|
||||
while (j > 0 && typ[j] == "comment") {
|
||||
typ[j] = "delete"
|
||||
j--
|
||||
}
|
||||
# Include-Zeile löschen
|
||||
typ[i] = "delete"
|
||||
# Nachfolgende Leerzeile löschen (falls vorhanden)
|
||||
if (typ[i+1] == "empty") {
|
||||
typ[i+1] = "delete"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 1; i <= NR; i++) {
|
||||
if (typ[i] != "delete") print zeile[i]
|
||||
}
|
||||
}
|
||||
' "${_conf_file}" > "${_conf_file}.tmp" && mv "${_conf_file}.tmp" "${_conf_file}"
|
||||
|
||||
if grep -qE '^\s*protocols\s*{' "${_conf_file}"; then
|
||||
sed -i "/^\s*protocols\s*{/,/^}/c\
|
||||
${_protocols_block}" ${_conf_file} || _failed=true
|
||||
else
|
||||
echo -e "\n${_protocols_block}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*listen\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(listen\ ?=.*)#listen = ${_listen}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nlisten = ${_listen}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*base_dir\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(base_dir\ ?=.*)#base_dir = ${_base_dir}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nbase_dir = ${_base_dir}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*state_dir\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(state_dir\ ?=.*)#state_dir = ${_state_dir}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nstate_dir = ${_state_dir}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*mail_home\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(mail_home\ ?=.*)#mail_home = ${_mail_home}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nmail_home = ${_mail_home}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*mail_path\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(mail_path\ ?=.*)#mail_path = ${_mail_path}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nmail_path = ${_mail_driver}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*mail_driver\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(mail_driver\ ?=.*)#mail_driver = ${_mail_driver}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nmail_driver = ${_mail_driver}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
if grep -qE '^\s*shutdown_clients\s*=' "${_conf_file}"; then
|
||||
perl -i -n -p -e "s#^(\s*)\#?\ ?(shutdown_clients\ ?=.*)#shutdown_clients = ${_shutdown_clients}#g" \
|
||||
"${_conf_file}" || _failed=true
|
||||
else
|
||||
echo -e "\nshutdown_clients = ${_shutdown_clients}" >> "${_conf_file}" || _failed=true
|
||||
fi
|
||||
|
||||
cat <<EOF >> "${_conf_file}"
|
||||
|
||||
# Most of the actual configuration gets included below. The filenames are
|
||||
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
|
||||
# in filenames are intended to make it easier to understand the ordering.
|
||||
!include_try conf.d/*.conf
|
||||
|
||||
# A config file can also tried to be included without giving an error if
|
||||
# it's not found:
|
||||
!include_try local.conf
|
||||
|
||||
EOF
|
||||
|
||||
if ! $_failed ; then
|
||||
echo -e "$rc_done"
|
||||
else
|
||||
echo -e "$rc_failed"
|
||||
error "Adjusting Adjusting file /usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf failed"
|
||||
|
||||
echo ""
|
||||
echononl "continue anyway [yes/no]: "
|
||||
read OK
|
||||
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
|
||||
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
|
||||
echononl "Wrong entry! - repeat [yes/no]: "
|
||||
read OK
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Interupted by user"
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
## - edit /usr/local/dovecot/etc/dovecot/dovecot.conf
|
||||
## -
|
||||
@ -1208,7 +1555,6 @@ if $plugin_expire ; then
|
||||
/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf || _failed=true
|
||||
fi
|
||||
|
||||
|
||||
if ! $_failed ; then
|
||||
echo -e "$rc_done"
|
||||
else
|
||||
@ -1216,6 +1562,19 @@ else
|
||||
fatal "Adjusting Adjusting file /usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf failed"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
blank_line
|
||||
|
||||
echononl "Proceed instllation [yes/no]: "
|
||||
read OK
|
||||
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
|
||||
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
|
||||
echononl "Wrong entry! - repeat [yes/no]: "
|
||||
read OK
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
|
||||
|
||||
if $_new ; then
|
||||
|
Reference in New Issue
Block a user