aboutsummaryrefslogtreecommitdiffstats
path: root/www/apache13-modperl/pkg-install
blob: 525542577484d7e174dd0d90a9b2e482b79e8682 (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
#!/bin/sh
# $FreeBSD$
#

if [ "$2" != "PRE-INSTALL" ]; then
    exit 0
fi

USER=www
GROUP=${USER}
UID=80
GID=${UID}
TMPDIR=${TMPDIR:=/tmp}
PKG_TMPDIR=${PKG_TMPDIR:=${TMPDIR}}

apxscmd=${PKG_PREFIX}/sbin/apxs
perlmod=${PKG_PREFIX}/libexec/apache/libperl.so
tmpdir=${PKG_TMPDIR}/instmod_perl.$$

if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then
    if pw groupadd ${GROUP} -g ${GID}; then
        echo "Added group \"${GROUP}\"."
    else
        echo "Adding group \"${GROUP}\" failed..."
        exit 1
    fi
fi

if ! pw usershow "${USER}" 2>/dev/null 1>&2; then
    if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
        -s "/sbin/nologin" -d "/nonexistent" \
        -c "World Wide Web Owner"; \
    then
        echo "Added user \"${USER}\"."
    else
        echo "Adding user \"${USER}\" failed..."
        exit 1
    fi
fi

if [ "$2" != "POST-INSTALL" ]; then
        exit 0
fi

if [ ! -x ${apxscmd} ]; then
        echo Can\'t find the apxs program: ${apxscmd}.
        exit 1
fi

confdir=`${apxscmd} -q SYSCONFDIR`

if [ ! -d ${confdir} ]; then
        echo Can\'t find Apache conf dir: ${confdir}
        exit 1
fi

if [ ! -f ${confdir}/httpd.conf ]; then
        if [ ! -f ${confdir}/httpd.conf.default ]; then
                echo Can\'t find either of ${confdir}/httpd.conf nor
                echo ${confdir}/httpd.conf.default.
                exit 1
        fi

        if ! mkdir ${tmpdir}; then
                echo Can\'t create temporary directory: ${tmpdir}
                exit 1
        fi

        cp ${confdir}/httpd.conf.default ${tmpdir}/httpd.conf
        if ${apxscmd} -e -S SYSCONFDIR=${tmpdir} -a -n perl ${perlmod}; then
                echo Updating httpd.conf.default in config dir: ${confdir}
                cat ${tmpdir}/httpd.conf > ${confdir}/httpd.conf.default
                rm -rf ${tmpdir}
                exit 0
        else
                rm -rf ${tmpdir}
                echo The apxs command failed to activate mod_perl in the config
                echo file: ${tmpdir}/httpd.conf.
                exit 1
        fi
elif ${apxscmd} -e -a -n perl ${perlmod}; then
        exit 0
else
        echo The apxs command failed to activate mod_perl in the config
        echo file: ${confdir}/httpd.conf
        exit 1
fi

exit 0