Your IP : 3.145.20.172


Current Path : /var/lib/dpkg/info/
Upload File :
Current File : /var/lib/dpkg/info/ispmanager-pkg-dovecot.postinst

#!/bin/bash
# postinst script for coremanager
#
# see: dh_installdeb(1)

#set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

COREDIR=/usr/local/mgr5
CONFNAME=dovecot.conf
. ${COREDIR}/lib/pkgsh/core_pkg_funcs.sh
. ${COREDIR}/lib/pkgsh/ispmgr_pkg_funcs.sh


case "$1" in
    configure)
	if [ -z ${2} ]; then

		if [ "#${ISPCONVERT}" = "#yes" ]; then
			PATHLIST="dovecot-passwd dovecot-doveadm"
			PARAMLIST="POP3"
			PathConvert ${COREDIR}/etc/conf.d/dovecot.conf
			ParamConvert ${COREDIR}/etc/conf.d/dovecot.conf
			MakeConfigLink dovecot
			ReloadMgr ${ISPMGR}
		else

			# auth conf
			sed -i -r "s|^(\s*\!include auth-system.conf.ext)$|#\1|" /etc/dovecot/conf.d/10-auth.conf
			sed -i -r "s|^\s*#(!include auth-passwdfile.conf.ext)|\1|" /etc/dovecot/conf.d/10-auth.conf
			sed -i -r "s|^\s*#(disable_plaintext_auth = ).*|\1no|" /etc/dovecot/conf.d/10-auth.conf
			sed -i -r "s/^\s*(auth_mechanisms = )plain\s*($|#)/\1plain login cram-md5/" /etc/dovecot/conf.d/10-auth.conf
			if grep -Eq '^#auth_username_chars' /etc/dovecot/conf.d/10-auth.conf ; then
				sed -i -r '/#auth_username_chars/s/^#(auth_username_chars)\s*=.*/\1 = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_+=`@абвгдеёжзийклмнопрстуфхцчшщъыьэюя/' /etc/dovecot/conf.d/10-auth.conf
			fi

			AddFix "fix_ISP6-1447_remove_digestmd5"
	
			# auth-passwdfile.conf.ext
			sed -i -r "s|args = scheme=CRYPT username_format=%u /etc/dovecot/users|args = scheme=CRYPT username_format=%Lu /etc/dovecot/dovecot.passwd|" /etc/dovecot/conf.d/auth-passwdfile.conf.ext
			sed -i -r "s|args = username_format=%u /etc/dovecot/users|args = username_format=%Lu /etc/dovecot/dovecot.passwd|" /etc/dovecot/conf.d/auth-passwdfile.conf.ext
	
			# mail.conf
			sed -i -r "s|#mail_location = |mail_location = maildir:~/.maildir|" /etc/dovecot/conf.d/10-mail.conf
			sed -i -r 's|#separator = $|separator = /|' /etc/dovecot/conf.d/10-mail.conf
			sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /quota/! s/^(\s*mail_plugins\s*=.*)/\1 quota/" /etc/dovecot/conf.d/10-mail.conf
			sed -i -r "/listescape/! s/^(\s*mail_plugins\s*=.*)/\1 listescape/" /etc/dovecot/conf.d/10-mail.conf
	
			# ssl.conf
			sed -i -r "s|ssl = required|ssl = yes|" /etc/dovecot/conf.d/10-ssl.conf
	
			# imap.conf
			sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /imap_quota/! s/^(\s*mail_plugins\s*=.*)/\1 imap_quota/" /etc/dovecot/conf.d/20-imap.conf
	
			# dovecot.conf
			sed -i -r "s|#listen = \*, ::|listen = *|" /etc/dovecot/dovecot.conf
	
			# master.con. Ugh
			sed -i '/  unix_listener auth-userdb {/{$!{N;s|  unix_listener auth-userdb {\n    #mode = 0600|  unix_listener auth-userdb {\n    mode = 0666|}}' /etc/dovecot/conf.d/10-master.conf
	
			# lda.conf
			sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /quota/! s/^(\s*mail_plugins\s*=.*)/\1 quota/" /etc/dovecot/conf.d/15-lda.conf
			sed -i -r "s|#postmaster_address =.*|postmaster_address = postmaster@$(hostname -f)|" /etc/dovecot/conf.d/15-lda.conf
	
			# quota.conf
			sed -i -r "s|#quota = maildir:User quota|quota = maildir:User quota|" /etc/dovecot/conf.d/90-quota.conf
			
			# plugin.conf
			if ! grep -q listescape_char /etc/dovecot/conf.d/90-plugin.conf ; then
				cat >> /etc/dovecot/conf.d/90-plugin.conf << 'EOF'
plugin {
  listescape_char = "\\"
}
EOF
			fi
			AddFix "fix_ISP6-1167_maildir_separator"
			AddFix "fix_ISP6-1265_move_listescape_plugin"

			touch /etc/dovecot/dovecot.passwd
			chown dovecot /etc/dovecot/dovecot.passwd
			chmod 640 /etc/dovecot/dovecot.passwd
	
			ReloadService dovecot
			EnableService dovecot

			MakeConfigLink dovecot
			ReloadMgr ${ISPMGR}

			ServiceAddmon dovecot

			# Afterinstall
			AfterinstallModule ${ISPMGR} dovecot
		fi
	else
		if AddFix "fix_ISP6-1265_move_listescape_plugin"; then
			if AddFix "fix_ISP6-1167_maildir_separator"; then
				sed -i -r -z 's|#?separator = \.?\n|separator = /\n|' /etc/dovecot/conf.d/10-mail.conf
			else
				sed -i -r "/listescape/ s/^(\s*)(mail_plugins\s*=)/\1#\2/" /etc/dovecot/conf.d/90-plugin.conf
			fi
			if grep -q listescape_char /etc/dovecot/conf.d/90-plugin.conf ; then
				sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /listescape/! s/^(\s*mail_plugins\s*=.*)/\1 listescape/" /etc/dovecot/conf.d/10-mail.conf
			elif ! find /var/www/*/data/email/*/*/.maildir/ -maxdepth 1 -type d -name '*\\*' | grep -q . ; then
				sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /listescape/! s/^(\s*mail_plugins\s*=.*)/\1 listescape/" /etc/dovecot/conf.d/10-mail.conf
				cat >> /etc/dovecot/conf.d/90-plugin.conf << 'EOF'
plugin {
	listescape_char = "\\"
}
EOF
			fi
			sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /quota/! s/^(\s*mail_plugins\s*=.*)/\1 quota/" /etc/dovecot/conf.d/15-lda.conf
			sed -i -r "s/^(\s*)#(mail_plugins\s*=)/\1\2/; /imap_quota/! s/^(\s*mail_plugins\s*=.*)/\1 imap_quota/" /etc/dovecot/conf.d/20-imap.conf
			ReloadService dovecot
		fi
		if AddFix "fix_ISP6-1447_remove_digestmd5"; then
			sed -i -r "s/^\s*(auth_mechanisms = )plain login digest-md5 cram-md5\s*($|#)/\1plain login cram-md5/" /etc/dovecot/conf.d/10-auth.conf
			ReloadService dovecot
		fi
	fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



exit 0