aboutsummaryrefslogtreecommitdiffstats
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