View | Details | Raw Unified | Return to bug 69335 | Differences between
and this patch

Collapse All | Expand All

(-)pkg-install (-80 / +31 lines)
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

Return to bug 69335