freebsd-ports/mail/mailman/pkg-deinstall
Jean Milanez Melo 4987b30a5d - Add conditional in pkg-install/pkg-deinstall to check if the allow file in
cron dir already exists.

Reported by:	Steve Ames <steve@energistic.com> via email
Approved by:	mnag (mentor)
2006-05-12 18:28:39 +00:00

60 lines
2 KiB
Bash

#! /bin/sh
#
# $FreeBSD$
PATH=/bin:/usr/bin:/usr/sbin
case $2 in
DEINSTALL)
echo "---> Starting deinstall script:"
if /usr/bin/crontab -u "%%USER%%" -l | \
/usr/bin/diff - %%MAILMANDIR%%/cron/crontab.in >/dev/null 2>&1 ; then
echo "---> Zeroing crontab for \"%%USER%%\""
/usr/bin/crontab -u "%%USER%%" /dev/null
if [ -e /var/cron/allow ]; then
grep -v %%USER%% /var/cron/allow > /var/cron/allow.new
mv /var/cron/allow.new /var/cron/allow
fi
else
echo "---> Crontab for \"%%USER%%\" not removed: please deinstall"
echo "---> manually if you no-longer wish to use Mailman. eg:"
echo "---> /usr/bin/crontab -u "%%USER%%" -r"
fi
echo "---> Stopping Mailman's qrunner daemon"
%%PREFIX%%/etc/rc.d/mailman.sh stop >/dev/null 2>&1
/bin/sleep 2
echo "---> Preserving the \"last_mailman_version\" file"
/bin/cp -f %%MAILMANDIR%%/data/last_mailman_version /var/tmp/
# If the errorlog is the only existing logfile, delete it. (If Mailman's
# qrunner had not been running, then the process of trying to stop the
# qrunner (above) will cause the errorlog to be written to. Hence, even if
# the Mailman port/package is installed and immediately deinstalled, the
# errorlog will exist.)
if [ "`echo %%MAILMANDIR%%/logs/*`" = "%%MAILMANDIR%%/logs/error" ]; then
echo "---> Deleting errorlog (It is the only existing logfile.)"
/bin/rm -f %%MAILMANDIR%%/logs/error
fi
;;
POST-DEINSTALL)
echo "---> Starting post-deinstall script:"
if [ -d %%MAILMANDIR%% ]; then
echo '---> %%MAILMANDIR%% is not empty - this installation may have active lists!'
echo "---> Restoring \"last_mailman_version\" file"
[ -d %%MAILMANDIR%%/data ] || /bin/mkdir %%MAILMANDIR%%/data
/bin/mv -f /var/tmp/last_mailman_version %%MAILMANDIR%%/data/
fi
echo '---> - If you are not using Mailman any more, you should manually delete'
echo '---> - the "%%USER%%" user and "%%GROUP%%" group.'
echo '---> - You may delete them with "pw groupdel %%GROUP%%; pw userdel %%USER%%".'
;;
esac