ce0bf7c9ea
Notes: Please read the UPDATING! PR: ports/105106 Submitted by: Lupe Christoph <lupe@lupe-christoph.de> (maintainer)
118 lines
2.7 KiB
Bash
118 lines
2.7 KiB
Bash
#! /bin/sh
|
|
|
|
ask() {
|
|
local question default answer
|
|
|
|
question=$1
|
|
default=$2
|
|
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; 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 pw group show ${g} > /dev/null 2>&1; then
|
|
if yesno "Do you want me to remove group \"${g}\"" y; then
|
|
pw group del -n ${g}
|
|
echo "Done."
|
|
else
|
|
GID=`pw group show ${g} | awk -F: '{ print $3 }'`
|
|
fi
|
|
fi
|
|
if pw user show ${u} > /dev/null 2>&1; then
|
|
if yesno "Do you want me to remove user \"${u}\"" y; then
|
|
eval home=~${u}
|
|
pw user del -n ${u} -r
|
|
echo "Done."
|
|
if [ -d "${home}" ]; then
|
|
echo "Please remember to remove the home directory \"${home}\""
|
|
fi
|
|
|
|
# pw user del may have removed the group, too.
|
|
# Put it back if the admin asked us to retain it.
|
|
if [ -n "$GID" ]; then
|
|
pw group show ${g} > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
pw group add ${g}
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
delete_crontab_entries() {
|
|
local b e
|
|
b=$1
|
|
e=$2
|
|
|
|
TMPFILE=`mktemp -t munin` || exit 1
|
|
crontab -u munin -l | sed -e "/^$b\$/,/^$e\$/d" -e '/^[ ]*#/d' -e '/^$/d' > $TMPFILE
|
|
if [ -s $TMPFILE ]; then
|
|
crontab -u munin -l | sed -e "/^$b\$/,/^$e\$/d" | crontab -u munin -
|
|
echo "The crontab for user munin had manually created entries."
|
|
echo "Only the automatically created entries have been removed."
|
|
echo "These are the remaining lines:"
|
|
crontab -u munin -l
|
|
else
|
|
echo y | crontab -u munin -r
|
|
echo "crontab for user munin removed"
|
|
fi
|
|
rm $TMPFILE
|
|
}
|
|
|
|
delnewsyslog() {
|
|
tmp="/etc/#munin-node$$"
|
|
sed -e '/^\/var\/log\/munin-main\/\*\.log[ ]/d' /etc/newsyslog.conf >${tmp}
|
|
cat ${tmp} > /etc/newsyslog.conf
|
|
rm ${tmp}
|
|
}
|
|
|
|
newsyslog() {
|
|
ENTRY=`fgrep '/var/log/munin-main/*' /etc/newsyslog.conf`
|
|
DEFAULT='/var/log/munin-main/*.log munin:munin 644 7 * @T00 GNWZ'
|
|
if [ -z "$ENTRY" ]; then
|
|
exit 0
|
|
elif [ "$ENTRY" = "$DEFAULT" ]; then
|
|
delnewsyslog
|
|
elif yesno "You have changed the default munin-main entry in \"/etc/newsyslog.conf\".
|
|
Do you want me to delete it?" y; then
|
|
delnewsyslog
|
|
echo "Done."
|
|
fi
|
|
}
|
|
|
|
|
|
case $2 in
|
|
DEINSTALL)
|
|
if [ -z "${PACKAGE_BUILDING}" ]; then
|
|
delete_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN'
|
|
newsyslog
|
|
fi
|
|
;;
|
|
POST-DEINSTALL)
|
|
delete_account munin munin
|
|
;;
|
|
esac
|