#!/bin/sh # # $FreeBSD$ # # Created by: hetzels@westbend.net #set -vx PKG_BATCH=${BATCH:=NO} PKG_PREFIX=${PKG_PREFIX:=/usr/local} checkfile() { diff -bBqw $1 $1.dist >/dev/null 2>&1 case $? in 0) # config file exists, but is the same rm $1 ;; 1) # config file exists and differs ;; *) # no config file exists ;; esac } # Uninstall timseived's Cyrus.conf file. cyrus_conf() { if [ -f ${PKG_PREFIX}/lib/sasl/Cyrus.conf ]; then echo "pwcheck_method: pwcheck" > ${PKG_PREFIX}/lib/sasl/Cyrus.conf.tmp if cmp -s ${PKG_PREFIX}/lib/sasl/Cyrus.conf ${PKG_PREFIX}/lib/sasl/Cyrus.conf.tmp; then rm -f ${PKG_PREFIX}/lib/sasl/Cyrus.conf fi rm -f ${PKG_PREFIX}/lib/sasl/Cyrus.conf.tmp fi } # # Modify the 'cyrus' user created from the cyrus-sasl port # modify_cyrus_user() { USER=cyrus PW=/usr/sbin/pw if [ -x /usr/sbin/nologin ]; then shell=/usr/sbin/nologin elif [ -x /sbin/nologin ]; then shell=/sbin/nologin else shell=/nonexistent fi uhome=/nonexistent if ! ${PW} mod user ${USER} -d "${uhome}" -s "${shell}"; then e=$? echo "*** Failed to update user \`${USER}'." exit ${e} fi echo "*** Updated user \`${USER}'." } case $2 in DEINSTALL) cd ${PKG_PREFIX} cyrus_conf checkfile ${PKG_PREIFX}/etc/imapd.conf checkfile ${PKG_PREIFX}/etc/cyrus.conf ;; POST-DEINSTALL) modify_cyrus_user ;; esac