summaryrefslogtreecommitdiff
path: root/databases/gnats/pkg-install
blob: eb9cac52e0b5f002c0bfc5c96ccf79f249146903 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/sh
# an installation script for GNATS

check_pw()
{
    if which -s pw; then
	:
    else
	cat <<EOF

This system looks like a pre-2.2 version of FreeBSD.  We see that it
is missing the "pw" utility.  We need this utility.  Please get and
install it, and try again.  You can get the source from:

  ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz

Otherwise, just manually create the gnats user.

EOF
	exit 1
    fi
}

ask() {
    local question default answer

    question=$1
    default=$2
    if [ -z "${PACKAGE_BUILDING}" ]; then
	read -p "${question} (y/n) [${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
}

case $2 in
PRE-INSTALL)
printenv > /tmp/pe
    ## Hack /etc/master.passwd ##
    # check
    id_61=`id -u 61 2> /dev/null`
    id_gnats=`id -u gnats 2> /dev/null`
    if [ X"$id_gnats" != X ];then
	exit 0
    elif [ X"$id_61" != X ]; then
	cat <<EOF

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This system already has an account whose name is not 'gnats' and UID
number is 61.

   '`id 61`'

The new FreeBSD standard userid for the gnats user is 61, however you can
actually pick and UID number if you create the 'gnats' user by hand.

Please try to install this package again after you manually create a 'gnats'
account.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EOF
	exit 1
    fi

    # add an account 'gnats' to this system
    echo ""
    echo "You need to create a user called 'gnats'"
    if yesno "Would you like to create it automatically?" y; then
	# We need a command 'pw(8)'
	check_pw
	pw useradd gnats -u 61 -g 1 -h - -d ${PKG_PREFIX}/share/gnats/gnats-db \
		-c 'GNATS database owner' || exit
	grep -s gnats /etc/ftpusers || echo gnats >>/etc/ftpusers
    else
	echo "Please create it, and try again."
	exit 1
    fi
    ;;
esac