mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-16 03:24:07 +00:00
e5925cd22e
(already submitted to the author) Add user & group in package building too. Submitted by: bento Remove user & group on deinstallation (only on bento).
98 lines
2.2 KiB
Bash
98 lines
2.2 KiB
Bash
#!/bin/sh
|
|
|
|
# This script is a modified copy of the pkg-install script from the
|
|
# original ircd-hybrid port, by desmo@bandwidth.org.
|
|
|
|
if [ "x$2" != "xPRE-INSTALL" ]; then
|
|
exit 0;
|
|
fi
|
|
|
|
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
|
|
}
|
|
|
|
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
|
|
run.
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
uid=73
|
|
user=ircservices
|
|
gid=$uid
|
|
group=$user
|
|
gecos="IRC services"
|
|
shell=/nonexistent
|
|
home=/nonexistent
|
|
|
|
echo ""
|
|
if pw groupshow $group 2> /dev/null ; then
|
|
echo "You already have a group \"$group\", so I will use it."
|
|
else
|
|
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 \"$group\"."
|
|
if which -s pw && yesno "Would you like me to create it" y; then
|
|
pw groupadd $group -g $gid || exit
|
|
echo "Done."
|
|
else
|
|
echo "Please create it, and try again."
|
|
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 $user 2> /dev/null ; then
|
|
echo "You already have a user \"$user\", so I will use it."
|
|
else
|
|
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 \"$group\"."
|
|
exit 1
|
|
fi
|
|
echo "You need a user \"$user\"."
|
|
if which -s pw && yesno "Would you like me to create it" y; then
|
|
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."
|
|
exit 1
|
|
fi
|
|
fi
|