|
Lines 1-91
Link Here
|
| 1 |
#!/bin/sh |
1 |
#!/bin/sh |
| 2 |
|
2 |
|
| 3 |
# This script is a slightly modified copy of the pkg-install script from the |
|
|
| 4 |
# original ircd-hybrid port, by desmo@bandwidth.org. |
| 5 |
|
| 6 |
if [ "x$2" != "xPRE-INSTALL" ]; then |
3 |
if [ "x$2" != "xPRE-INSTALL" ]; then |
| 7 |
exit 0; |
4 |
exit 0; |
| 8 |
fi |
5 |
fi |
| 9 |
|
6 |
|
| 10 |
ask() { |
7 |
USER=hybserv |
| 11 |
local question default answer |
8 |
GROUP=${USER} |
| 12 |
|
9 |
UID=73 |
| 13 |
question=$1 |
10 |
GID=${UID} |
| 14 |
default=$2 |
11 |
HOME_DIR="/nonexist" |
| 15 |
if [ -z "${PACKAGE_BUILDING}" ]; then |
12 |
if pw group show "${GROUP}" 2>/dev/null; then |
| 16 |
read -p "${question} [${default}]? " answer |
13 |
echo "You already have a group \"${GROUP}\", so I will use it." |
| 17 |
fi |
|
|
| 18 |
if [ x${answer} = x ]; then |
| 19 |
answer=${default} |
| 20 |
fi |
| 21 |
echo ${answer} |
| 22 |
} |
| 23 |
|
| 24 |
yesno() { |
| 25 |
local dflt question answer |
| 26 |
|
| 27 |
question=$1 |
| 28 |
dflt=$2 |
| 29 |
while :; do |
| 30 |
answer=$(ask "${question}" "${dflt}") |
| 31 |
case "${answer}" in |
| 32 |
[Yy]*) return 0;; |
| 33 |
[Nn]*) return 1;; |
| 34 |
esac |
| 35 |
echo "Please answer yes or no." |
| 36 |
done |
| 37 |
} |
| 38 |
|
| 39 |
if which -s pw ; then |
| 40 |
: |
| 41 |
else |
| 42 |
cat <<EOF |
| 43 |
Your system does not include the "pw" utility. You should upgrade |
| 44 |
to a newer version of FreeBSD. Without "pw" this script will not |
| 45 |
run. |
| 46 |
EOF |
| 47 |
exit 1 |
| 48 |
fi |
| 49 |
|
| 50 |
echo "" |
| 51 |
if pw groupshow hybserv 2> /dev/null ; then |
| 52 |
echo "You already have a group \"hybserv\", so I will use it." |
| 53 |
else |
| 54 |
if pw groupshow 73 2> /dev/null ; then |
| 55 |
echo "You already have a gid \"73\". Please create a user \"hybserv\"" |
| 56 |
echo "with a default group of \"hybserv\"." |
| 57 |
exit 1 |
| 58 |
fi |
| 59 |
echo "You need a group \"hybserv\"." |
| 60 |
if which -s pw && yesno "Would you like me to create it" y; then |
| 61 |
pw groupadd hybserv -g 73 || exit |
| 62 |
echo "Done." |
| 63 |
else |
14 |
else |
| 64 |
echo "Please create it, and try again." |
15 |
if pw groupadd ${GROUP} -g ${GID}; then |
| 65 |
if ! pw usershow hybserv 2> /dev/null ; then |
16 |
echo "Added group \"${GROUP}\"." |
| 66 |
echo "While you're at it, please create a user \"hybserv\"" |
17 |
else |
| 67 |
echo 'too, with a default group of "hybserv".' |
18 |
echo "Adding group \"${GROUP}\" failed..." |
|
|
19 |
exit 1 |
| 68 |
fi |
20 |
fi |
| 69 |
exit 1 |
|
|
| 70 |
fi |
21 |
fi |
| 71 |
fi |
|
|
| 72 |
|
22 |
|
| 73 |
if pw usershow hybserv 2> /dev/null ; then |
23 |
if pw user show "${USER}" 2>/dev/null; then |
| 74 |
echo "You already have a user \"hybserv\", so I will use it." |
24 |
echo "You already have a user \"${USER}\", so I will use it." |
| 75 |
else |
25 |
if pw usermod ${USER} -d ${HOME_DIR} |
| 76 |
if pw usershow 73 2> /dev/null ; then |
26 |
then |
| 77 |
echo "You already have a uid \"73\". Please create a user \"irc |
27 |
echo "Changed home directory of \"${USER}\" to \"${HOME_DIR}\"" |
| 78 |
d\"" |
28 |
else |
| 79 |
echo "with a default group of \"hybserv\"." |
29 |
echo "Changing home directory of \"${USER}\" to \"${HOME_DIR}\" failed..." |
| 80 |
exit 1 |
30 |
exit 1 |
| 81 |
fi |
31 |
fi |
| 82 |
echo "You need a user \"hybserv\"." |
|
|
| 83 |
if which -s pw && yesno "Would you like me to create it" y; then |
| 84 |
pw useradd hybserv -g hybserv -u 73 -h - -d /nonexistent \ |
| 85 |
-s /nonexistent -c "IRC Daemon" || exit |
| 86 |
echo "Done." |
| 87 |
else |
32 |
else |
| 88 |
echo "Please create it, and try again." |
33 |
if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ |
| 89 |
exit 1 |
34 |
-d ${HOME_DIR} -s /sbin/nologin -c "HybServ Daemon" |
|
|
35 |
then |
| 36 |
echo "Added user \"${USER}\"." |
| 37 |
else |
| 38 |
echo "Adding user \"${USER}\" failed..." |
| 39 |
exit 1 |
| 40 |
fi |
| 90 |
fi |
41 |
fi |
| 91 |
fi |
42 |
|