File: groonga-server-common.postinst

package info (click to toggle)
groonga 11.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 121,576 kB
  • sloc: ansic: 801,209; javascript: 62,121; ruby: 46,206; cpp: 33,790; xml: 24,951; yacc: 13,333; sh: 7,776; python: 3,266; makefile: 2,315; perl: 133
file content (75 lines) | stat: -rwxr-xr-x 2,308 bytes parent folder | download | duplicates (4)
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
#! /bin/sh

set -e

add_system_user() {
    if ! getent passwd _groonga >/dev/null; then
        if getent passwd groonga >/dev/null; then
            usermod -g nogroup groonga
            if pgrep -u groonga groonga-httpd >/dev/null; then
                invoke-rc.d groonga-httpd stop
            fi
            if pgrep -u groonga groonga >/dev/null; then
                invoke-rc.d groonga-server-gqtp stop
            fi
            deluser --system groonga
            adduser --system --no-create-home --home /var/lib/groonga --ingroup groonga --force-badname _groonga
        else
            addgroup --system groonga
            adduser --system --home /var/lib/groonga --ingroup groonga --force-badname _groonga
        fi
    fi
}

fixperms() {
    for target in /var/run/groonga /var/lib/groonga /var/log/groonga
    do
        dpkg-statoverride --list $target >/dev/null || \
            dpkg-statoverride --update --add _groonga groonga 0755 $target
    done
}

create_database() {
    if [ ! -d /var/lib/groonga/db ]; then
        mkdir -p /var/lib/groonga/db
        groonga -n /var/lib/groonga/db/db shutdown > /dev/null
        chown _groonga:groonga /var/lib/groonga
        chown _groonga:groonga /var/lib/groonga/db
        chown _groonga:groonga /var/lib/groonga/db/db*
    else
        owner=`stat --format '%U' /var/lib/groonga`
        if [ "$owner" = "groonga" ]; then
            chown _groonga:groonga /var/lib/groonga
            chown _groonga:groonga /var/lib/groonga/db
            chown _groonga:groonga /var/lib/groonga/db/db*
        fi
    fi
}

case "$1" in
    configure)
        add_system_user
        create_database
        # buster -> bullseye upgrade migration
        if dpkg --compare-versions "$2" lt "11.0.0-2" ; then
            dpkg-statoverride --list | \
            while read user group mod path
            do
                if [ "$user" = "groonga" ]; then
                    dpkg-statoverride --remove $path
                    dpkg-statoverride --update --add _groonga $group $mod $path
                fi
            done
        fi
        fixperms
        ;;
    abort-upgrade|abort-deconfigure|abort-remove)
        :
        ;;
    *)
        echo "Called with unknown argument $1, bailing out."
        exit 1
        ;;
esac

#DEBHELPER#