#! /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}