~launchpad-results/launchpad-results/trunk

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/sh

set -e

PACKAGE=launchpad-results-server

apache_install() {
    webserver=$1

    # Try to enable the alias and rewrite modules
    a2enmod -q alias || true
    a2enmod -q rewrite || true

    # Link the apache configuration file
    if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/lpresults ]; then
        ln -s /etc/lpresults/apache.conf /etc/$webserver/conf.d/lpresults
    fi
}

. /usr/share/debconf/confmodule

#DEBHELPER#

if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql ]; then
    . /usr/share/dbconfig-common/dpkg/postinst.pgsql

    for dbc_dbname in \
        lpresults-session \
        lpresults-test-1 \
        lpresults-tracker; do

        dbc_go $dbc_dbname $@
    done
fi

case "$1" in
    configure)
        # Create lpresults system user and group
        if ! getent passwd lpresults >/dev/null; then
            adduser --quiet --system --group --shell /bin/bash \
                --home /var/lib/lpresults --no-create-home \
                --gecos "Launchpad Results" lpresults
        fi
        if ! getent group lpresults >/dev/null; then
            addgroup --quiet --system lpresults
        fi

        # Check validity of lpresults user and group
        if [ "`id -u lpresults`" -eq 0 ]; then
            echo "The lpresults user must not have uid 0 (root).
Please fix this and reinstall this package." >&2
            exit 1
        fi
        if [ "`id -g lpresults`" -eq 0 ]; then
            echo "The lpresults user must not have root as primary group.
Please fix this and reinstall this package." >&2
            exit 1
        fi

        # Ensure home directory ownership
        mkdir -p /var/lib/lpresults
        chown lpresults:lpresults /var/lib/lpresults

        # Handle webserver reconfiguration/restart
        db_get $PACKAGE/reconfigure-webserver || true
        webservers="$RET"
        restart=""

        for webserver in $webservers; do
            webserver=${webserver%,}

            if [ "$webserver" = "apache2" ]; then
                apache_install $webserver
            else
                echo "Unsupported webserver $webserver"
            fi

            if [ -x /usr/sbin/$webserver ]; then
                restart="$restart $webserver"
            fi
        done

        db_get $PACKAGE/restart-webserver || true
        res="$RET"

        db_stop || true

        if [ "$res" = "true" ]; then
            for webserver in $restart; do
                webserver=${webserver%,}

                # Redirection of 3 is needed because Debconf uses it
                # and it might be inherited by webserver.
                if [ -x /usr/sbin/invoke-rc.d ]; then
                    invoke-rc.d $webserver restart 3>/dev/null || true
                else
                    /etc/init.d/$webserver restart 3>/dev/null || true
                fi
            done
        fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac