freebsd-ports/mail/dovecot/files/pkg-install.in
Wesley Shields a930b98986 Version update to dovecot-1.1.7 and dovecot-1.1.7-managesieve-0.10.4
'statedir' set to /var/db/dovecot instead of defaulting to /var/lib/dovecot
Users should manually rm -rf /var/lib/dovecot

Removed stale code from files/pkg-deinstall.in and files/pkg-install.in

Reworked files/dovecot.sh.in to accept dovecot_config and handle creating
and tearing down runtime directories upon startup and shutdown.

Rediffed files/patch-dovecot-example.conf to clean up line offsets.

PR:		ports/129230
Submitted by:	Yarema <yds@CoolRat.org> (maintainer)
2008-11-28 14:38:26 +00:00

93 lines
2.8 KiB
Bash

#!/bin/sh
#
# $FreeBSD: /tmp/pcvs/ports/mail/dovecot/files/pkg-install.in,v 1.2 2008-11-28 14:38:26 wxs Exp $
#
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
read -p "${question} [${default}]? " answer
fi
echo ${answer:-${default}}
}
yesno() {
local question default answer
question=$1
default=$2
while :; do
answer=$(ask "${question}" "${default}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
create_account() {
local port user uid group gid gcos home shell
port=$1
user=${2%:*}
uid=${2#*:}
group=${3%:*}
gid=${3#*:}
gcos=$4
home=$5
shell=$6
pw_user_uid=$(pw usershow -n "${user}" 2>/dev/null | cut -d: -f3)
pw_uid_user=$(pw usershow -u "${uid}" 2>/dev/null | cut -d: -f1)
pw_group_gid=$(pw groupshow -n "${group}" 2>/dev/null | cut -d: -f3)
pw_gid_group=$(pw groupshow -g "${gid}" 2>/dev/null | cut -d: -f1)
if [ -z "${pw_group_gid}" -a -z "${pw_gid_group}" ]; then
echo "You need a ${group} group; creating it..."
pw groupadd "${group}" -g "${gid}" || exit
echo "Done."
elif [ "${gid}" = "${pw_group_gid}" -a "${group}" = "${pw_gid_group}" ]; then
echo "Using existing ${group} group."
else
echo "${port} has reserved the groupname '${group}' and gid '${gid}':"
[ -n "${pw_group_gid}" -a "${gid}" != "${pw_group_gid}" ] \
&& echo "ERROR: groupname '${group}' already in use by gid '${pw_group_gid}'"
[ -n "${pw_gid_group}" -a "${group}" != "${pw_gid_group}" ] \
&& echo "ERROR: gid '${gid}' already in use by group '${pw_gid_group}'"
echo "Please resolve these issues and try again:"
echo "Either remove the conflicting group or if you wish to continue using a legacy group override DOVECOT_GID."
exit 1
fi
if [ -z "${pw_user_uid}" -a -z "${pw_uid_user}" ]; then
echo "You need a ${user} user; creating it..."
pw useradd "${user}" -u "${uid}" -g "${group}" -c "${gcos}" -d "${home}" -s "${shell}"
echo "Done."
elif [ "${uid}" = "${pw_user_uid}" -a "${user}" = "${pw_uid_user}" ]; then
echo "Using existing ${user} user."
else
echo "${port} has reserved the username '${user}' and uid '${uid}':"
[ -n "${pw_user_uid}" -a "${uid}" != "${pw_user_uid}" ] \
&& echo "ERROR: username '${user}' already in use by uid '${pw_user_uid}'"
[ -n "${pw_uid_user}" -a "${user}" != "${pw_uid_user}" ] \
&& echo "ERROR: uid '${uid}' already in use by user '${pw_uid_user}'"
echo "Please resolve these issues and try again:"
echo "Either remove the conflicting user or if you wish to continue using a legacy user override DOVECOT_UID."
exit 1
fi
}
case $2 in
PRE-INSTALL)
create_account Dovecot dovecot:${DOVECOT_UID:-%%DOVECOT_UID%%} dovecot:${DOVECOT_GID:-%%DOVECOT_GID%%} "Dovecot User" /var/empty /usr/sbin/nologin
;;
esac