freebsd-ports/net/cvsup-mirror/pkg-deinstall
John Polstra 7c45758b34 DEINSTALL: Offer to kill all running cvsupd processes. Remind
the user to remove the client's home directory and the mirrored
files.

INSTALL:  Create a home directory for the client user, since one
is needed to hold the authentication key file.  Also create an
empty "auth" file so that its permissions will be right.  Set the
gcos fields more appropriately.
2000-02-11 04:26:59 +00:00

109 lines
2.2 KiB
Bash

#! /bin/sh
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 dflt question answer
question=$1
dflt=$2
while :; do
answer=$(ask "${question}" "${dflt}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
delete_account() {
local u g home
u=$1
g=$2
if yesno "Do you want me to remove group \"${g}\"" y; then
pw groupdel -n ${g}
echo "Done."
fi
if yesno "Do you want me to remove user \"${u}\"" y; then
eval home=~${u}
pw userdel -n ${u}
echo "Done."
if [ -d "${home}" ]; then
echo "Please remember to remove the home directory \"${home}\" as"
echo "well as the mirrored files."
fi
fi
}
if [ x$2 != xDEINSTALL ]; then
exit
fi
export PATH=/bin:/usr/bin:/usr/sbin
base=${PKG_PREFIX}/etc/cvsup
. ${base}/config.sh || exit
if ps -axc | grep -q cvsupd; then
if yesno "There are some cvsupd processes running. Shall I kill them" y
then
killall cvsupd
sleep 2
else
echo "OK ... I hope you know what you are doing."
fi
fi
tmp="/etc/#cvsma$$"
trap "rm -f ${tmp}" 0 1 2 3 15
rm -rf ${base}/prefixes
rm -f ${base}/.start_server
if yesno "Do you want me to remove scheduled updates from \"/etc/crontab\"" y
then
sed "/\/etc\/cvsup\/update\.sh/d" /etc/crontab >${tmp} || exit
chmod 644 ${tmp}
mv ${tmp} /etc/crontab || exit
echo "Done."
fi
if yesno \
"Do you want me to remove the cvsupd logging from \"/etc/syslog.conf\"" y
then
sed "/^!cvsupd/,/cvsupd\.log\$/d" /etc/syslog.conf >${tmp} || exit
chmod 644 ${tmp}
mv ${tmp} /etc/syslog.conf || exit
if [ -f /var/run/syslog.pid ]; then
echo "Giving syslogd a kick in the pants."
kill -HUP $(cat /var/run/syslog.pid)
fi
echo "Done."
fi
if yesno "Do you want me to remove the cvsupd log entry from \
\"/etc/newsyslog.conf\"" y; then
sed "/cvsupd\.log/d" /etc/newsyslog.conf >${tmp} || exit
chmod 644 ${tmp}
mv ${tmp} /etc/newsyslog.conf || exit
echo "Done."
fi
delete_account ${user} ${group}
delete_account ${cuser} ${cgroup}