7c45758b34
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.
109 lines
2.2 KiB
Bash
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}
|