27342cc2fb
Fix config files from being erased. Submitted by: Vivek Khera
153 lines
4.5 KiB
Bash
153 lines
4.5 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
|
|
|
|
ask() {
|
|
local question default answer
|
|
|
|
question=$1
|
|
default=$2
|
|
if [ -z "${PACKAGE_BUILDING}" ]; then
|
|
read -p "${question} [${default}]? " answer
|
|
fi
|
|
if [ x${answer} = x ]; then
|
|
answer=${default}
|
|
fi
|
|
echo ${answer}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
if [ x"$2" = xPRE-INSTALL ]; then
|
|
USER=postfix
|
|
GROUP=postfix
|
|
GROUP2=maildrop
|
|
|
|
if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
|
|
echo "You already have a group \"${GROUP}\", so I will use it."
|
|
else
|
|
if /usr/sbin/pw groupadd ${GROUP} -h -
|
|
then
|
|
echo "Added group \"${GROUP}\"."
|
|
else
|
|
echo "Adding group \"${GROUP}\" failed..."
|
|
echo "Please create it, and try again."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
|
|
echo "You already have a group \"${GROUP2}\", so I will use it."
|
|
else
|
|
if /usr/sbin/pw groupadd ${GROUP2} -h -
|
|
then
|
|
echo "Added group \"${GROUP2}\"."
|
|
else
|
|
echo "Adding group \"${GROUP2}\" failed..."
|
|
echo "Please create it, and try again."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
|
|
echo "You already have a user \"${USER}\", so I will use it."
|
|
else
|
|
if /usr/sbin/pw useradd ${USER} -g ${GROUP} -h - \
|
|
-d /var/spool/postfix \
|
|
-s /sbin/nologin \
|
|
-c "Postfix Mail System"
|
|
then
|
|
echo "Added user \"${USER}\"."
|
|
else
|
|
echo "Adding user \"${USER}\" failed..."
|
|
echo "Please create it, and try again."
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ x"$2" = xPOST-INSTALL ]; then
|
|
if [ ! -f ${PKG_PREFIX}/etc/postfix/main.cf ]; then
|
|
cp ${PKG_PREFIX}/etc/postfix/sample-main.cf ${PKG_PREFIX}/etc/postfix/main.cf
|
|
fi
|
|
if [ ! -f ${PKG_PREFIX}/etc/postfix/master.cf ]; then
|
|
cp ${PKG_PREFIX}/etc/postfix/sample-master.cf ${PKG_PREFIX}/etc/postfix/master.cf
|
|
fi
|
|
|
|
sh ${PKG_PREFIX}/etc/postfix/post-install tempdir=/tmp \
|
|
config_directory=${PKG_PREFIX}/etc/postfix \
|
|
daemon_directory=${PKG_PREFIX}/libexec/postfix \
|
|
command_directory=${PKG_PREFIX}/sbin \
|
|
queue_directory=/var/spool/postfix \
|
|
sendmail_path=${PKG_PREFIX}/sbin/sendmail \
|
|
newaliases_path=${PKG_PREFIX}/bin/newaliases \
|
|
mailq_path=${PKG_PREFIX}/bin/mailq \
|
|
mail_owner=postfix \
|
|
setgid_group=maildrop \
|
|
manpage_directory=${PKG_PREFIX}/man \
|
|
sample_directory=${PKG_PREFIX}/etc/postfix \
|
|
readme_directory=no \
|
|
upgrade-package
|
|
# readme_directory is "no" above since the package will have correct perms
|
|
# already, and we don't know if they had PORTDOCS.
|
|
fi
|
|
|
|
replace() {
|
|
local orig repl
|
|
|
|
orig=$1
|
|
repl=$2
|
|
if [ -e ${orig} ]; then
|
|
mv -f ${orig} ${orig}.OFF
|
|
chmod 0 ${orig}.OFF
|
|
fi
|
|
if [ -e ${repl} ]; then
|
|
ln -s ${repl} ${orig}
|
|
fi
|
|
}
|
|
|
|
if [ x"$2" = xPOST-INSTALL -a -z "${PACKAGE_BUILDING}" ]; then
|
|
if [ -x /sbin/sysctl ]; then
|
|
OSVERSION=`/sbin/sysctl -n kern.osreldate`
|
|
else
|
|
OSVERSION=`/usr/sbin/sysctl -n kern.osreldate`
|
|
fi
|
|
if [ ${OSVERSION} -ge 400014 ]; then
|
|
if yesno "Would you like to activate Postfix in /etc/mail/mailer.conf" n; then
|
|
mv -f /etc/mail/mailer.conf /etc/mail/mailer.conf.old
|
|
echo "#" > /etc/mail/mailer.conf
|
|
echo -n "# Execute the Postfix sendmail program" >> /etc/mail/mailer.conf
|
|
echo ", named ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
|
|
echo "#" >> /etc/mail/mailer.conf
|
|
echo "sendmail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
|
|
echo "send-mail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
|
|
echo "mailq ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
|
|
echo "newaliases ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
|
|
echo "Done."
|
|
fi
|
|
else
|
|
if yesno "Would you like to replace {sendmail,mailq,newaliases} with Postfix versions" n; then
|
|
replace /usr/sbin/sendmail ${PKG_PREFIX}/sbin/sendmail
|
|
replace /usr/bin/mailq ${PKG_PREFIX}/sbin/sendmail
|
|
replace /usr/bin/newaliases ${PKG_PREFIX}/sbin/sendmail
|
|
echo "Done."
|
|
fi
|
|
fi
|
|
fi
|