aboutsummaryrefslogtreecommitdiffstats
path: root/net-mgmt/nefu/pkg-deinstall
diff options
context:
space:
mode:
Diffstat (limited to 'net-mgmt/nefu/pkg-deinstall')
-rw-r--r--net-mgmt/nefu/pkg-deinstall70
1 files changed, 70 insertions, 0 deletions
diff --git a/net-mgmt/nefu/pkg-deinstall b/net-mgmt/nefu/pkg-deinstall
new file mode 100644
index 000000000000..123ea4b8eb97
--- /dev/null
+++ b/net-mgmt/nefu/pkg-deinstall
@@ -0,0 +1,70 @@
+#! /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
+}
+
+case $2 in
+ POST-DEINSTALL)
+ delete_account nefu nefu
+ ;;
+esac