summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkinori MUSHA <knu@FreeBSD.org>2003-04-24 20:18:10 +0000
committerAkinori MUSHA <knu@FreeBSD.org>2003-04-24 20:18:10 +0000
commit13e5cb29f396fc9983b7ee55da313f39dd32eec1 (patch)
tree422ea0f68dc8f38e5e3db6c4acd651f93387b89a
parentFix typos in COMMENT. Replace spaces with a tab in MASTER_SITES to make (diff)
Add user & group in package building too.
Submitted by: bento Remove user & group on deinstallation (only on bento).
Notes
Notes: svn path=/head/; revision=79599
-rw-r--r--irc/dancer-ircd/Makefile2
-rw-r--r--irc/dancer-ircd/pkg-deinstall56
-rw-r--r--irc/dancer-ircd/pkg-install50
3 files changed, 84 insertions, 24 deletions
diff --git a/irc/dancer-ircd/Makefile b/irc/dancer-ircd/Makefile
index ebaf0f725ba8..46ea79352fd7 100644
--- a/irc/dancer-ircd/Makefile
+++ b/irc/dancer-ircd/Makefile
@@ -28,9 +28,7 @@ post-patch:
${REINPLACE_CMD} 's:@@prefix@@:${PREFIX}:g' ${WRKSRC}/include/config.h
pre-install:
-.if !defined(PACKAGE_BUILDING) && !defined(BATCH)
@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
-.endif
post-install:
${INSTALL} -d -m 700 -o ircd -g ircd \
diff --git a/irc/dancer-ircd/pkg-deinstall b/irc/dancer-ircd/pkg-deinstall
new file mode 100644
index 000000000000..1e87c9ff95aa
--- /dev/null
+++ b/irc/dancer-ircd/pkg-deinstall
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -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
+
+ 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
+ pw userdel -n ${u}
+ echo "Done."
+ fi
+}
+
+if [ "$2" != "POST-DEINSTALL" ]; then
+ exit 0
+fi
+
+if [ -n "$PACKAGE_BUILDING" ]; then
+ delete_account ircd ircd
+fi
diff --git a/irc/dancer-ircd/pkg-install b/irc/dancer-ircd/pkg-install
index f8aba5f8e63c..847e54041e1c 100644
--- a/irc/dancer-ircd/pkg-install
+++ b/irc/dancer-ircd/pkg-install
@@ -12,7 +12,7 @@ ask() {
question=$1
default=$2
- if [ -z "${PACKAGE_BUILDING}" ]; then
+ if [ -z "${BATCH}" ]; then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
@@ -36,9 +36,7 @@ yesno() {
done
}
-if which -s pw ; then
- :
-else
+if ! which -s pw ; then
cat <<EOF
Your system does not include the "pw" utility. You should upgrade
to a newer version of FreeBSD. Without "pw" this script will not
@@ -47,42 +45,50 @@ EOF
exit 1
fi
+uid=72
+user=ircd
+gid=$uid
+group=$user
+gecos="IRC daemon"
+shell=/nonexistent
+home=/nonexistent
+
echo ""
-if pw groupshow ircd 2> /dev/null ; then
- echo "You already have a group \"ircd\", so I will use it."
+if pw groupshow $group 2> /dev/null ; then
+ echo "You already have a group \"$group\", so I will use it."
else
- if pw groupshow 72 2> /dev/null ; then
- echo "You already have a gid \"72\". Please create a user \"ircd\""
- echo "with a default group of \"ircd\"."
+ if pw groupshow $gid 2> /dev/null ; then
+ echo "You already have a gid \"$gid\". Please create a user \"$group\""
+ echo "with a default group of \"$group\"."
exit 1
fi
- echo "You need a group \"ircd\"."
+ echo "You need a group \"$group\"."
if which -s pw && yesno "Would you like me to create it" y; then
- pw groupadd ircd -g 72 || exit
+ pw groupadd $group -g $gid || exit
echo "Done."
else
echo "Please create it, and try again."
- if ! pw usershow ircd 2> /dev/null ; then
- echo "While you're at it, please create a user \"ircd\""
- echo 'too, with a default group of "ircd".'
+ if ! pw usershow $user 2> /dev/null ; then
+ echo "While you're at it, please create a user \"$user\""
+ echo 'too, with a default group of "$group".'
fi
exit 1
fi
fi
-if pw usershow ircd 2> /dev/null ; then
- echo "You already have a user \"ircd\", so I will use it."
+if pw usershow $user 2> /dev/null ; then
+ echo "You already have a user \"$user\", so I will use it."
else
- if pw usershow 72 2> /dev/null ; then
- echo "You already have a uid \"72\". Please create a user \"irc
+ if pw usershow $uid 2> /dev/null ; then
+ echo "You already have a uid \"$uid\". Please create a user \"irc
d\""
- echo "with a default group of \"ircd\"."
+ echo "with a default group of \"$group\"."
exit 1
fi
- echo "You need a user \"ircd\"."
+ echo "You need a user \"$user\"."
if which -s pw && yesno "Would you like me to create it" y; then
- pw useradd ircd -g ircd -u 72 -h - -d /nonexistent \
- -s /nonexistent -c "IRC Daemon" || exit
+ pw useradd $user -g $group -u $uid -h - -d $home \
+ -s $shell -c "$gecos" || exit
echo "Done."
else
echo "Please create it, and try again."