freebsd-ports/sysutils/heartbeat2/files/pkg-install.in
Martin Wilke 4ae0fc34d1 - Fix permissions/ownership
PR:		ports/105144
Submitted by:	Ulrich Spoerlein <uspoerlein@gmail.com>
Approved by:	maintainer
2006-11-13 12:33:03 +00:00

138 lines
3.3 KiB
Bash

#! /bin/sh
ask() {
local question default answer
question=$1
default=$2
# pkg_add fails anyhow, if we do not create the user/group
if [ "x${BATCH}" = xno ]; 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
}
make_account() {
local u g uid gid
u=$1
g=$2
uid=$3
gid=$4
if pw group show "${g}" >/dev/null 2>&1; then
echo "You already have a group \"${g}\", so I will use it."
else
echo "You need a group \"${g}\"."
if yesno "Would you like me to create it" y; then
pw groupadd ${g} -g ${gid} || exit
echo "Done."
else
echo "Please create it manually, and try again."
exit 1
fi
fi
if pw user show "${u}" >/dev/null 2>&1; then
echo "You already have a user \"${u}\", so I will use it."
else
echo "You need a user \"${u}\"."
if yesno "Would you like me to create it" y; then
pw useradd ${u} -u ${uid} -g ${g} -h - -d /nonexistant \
-s /sbin/nologin -c "Heartbeat cluster user" || exit
echo "Done."
else
echo "Please create it, and try again."
exit 1
fi
fi
}
delete_account() {
local u g
u=$1
g=$2
if yesno "Do you want me to remove group \"${g}\"" y; then
echo "Removing group \"${g}\""
pw groupdel -n ${g}
echo "Done."
fi
if yesno "Do you want me to remove user \"${u}\"" y; then
echo "Removing user \"${u}\""
pw userdel -n ${u}
echo "Done."
fi
}
case $2 in
PRE-INSTALL)
echo ""
user=hacluster
group=haclient
uid=275
gid=275
make_account ${user} ${group} $uid $gid
echo "Adding empty dirs and pid file."
test -d /var/lib/heartbeat/ckpt || \
install -d -m 755 /var/lib/heartbeat/ckpt
test -d /var/lib/heartbeat/ccm || \
install -d -m 750 -o ${user} -g ${group} /var/lib/heartbeat/ccm
test -d /var/lib/heartbeat/cores/root || \
install -d -m 700 /var/lib/heartbeat/cores/root
test -d /var/lib/heartbeat/cores/nobody || \
install -d -m 700 -o nobody /var/lib/heartbeat/cores/nobody
test -d /var/lib/heartbeat/cores/hacluster || \
install -d -m 700 -o ${user} /var/lib/heartbeat/cores/hacluster
test -d /var/lock/subsys || \
install -d -m 755 /var/lock/subsys
test -f /var/run/heartbeat.pid || \
install -m 644 -o ${user} -g ${group} /dev/null \
/var/run/heartbeat.pid
;;
DEINSTALL)
if ps -axc | grep -q heartbeat; then
if yesno "There are some heartbeat processes running. Shall I kill them" y
then
killall heartbeat
sleep 2
else
echo "OK ... I hope you know what you are doing."
fi
fi
delete_account hacluster haclient
echo "Removing runtime files"
if [ -d /var/lib/heartbeat ]; then
rm -r /var/lib/heartbeat
fi
if [ -f /var/lock/subsys/heartbeat ]; then
rm /var/lock/subsys/heartbeat
fi
if [ -f /var/run/heartbeat.pid ]; then
rm /var/run/heartbeat.pid
fi
;;
esac