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 |
|