Add user & group in package building too.
Submitted by: bento Remove user & group on deinstallation (only on bento).
This commit is contained in:
parent
e0afa85d39
commit
13e5cb29f3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=79599
3 changed files with 84 additions and 24 deletions
|
@ -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 \
|
||||
|
|
56
irc/dancer-ircd/pkg-deinstall
Normal file
56
irc/dancer-ircd/pkg-deinstall
Normal file
|
@ -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
|
|
@ -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."
|
||||
|
|
Loading…
Reference in a new issue