summaryrefslogtreecommitdiff
path: root/debian/sane-utils.postinst
blob: 391bb05183c9365a6f0987572ad6f31a8adb6dfd (plain)
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
#!/bin/sh
set -e
. /usr/share/debconf/confmodule

SANED_DEFAULT=/etc/default/saned

saned_eh () {
    echo "saned couldn't start; check your inetd configuration and README.Debian"
}

if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then
    db_get sane-utils/saned_run
    RUN_SANED="$RET"

    db_get sane-utils/saned_scanner_group
    SANED_IN_SCANNER="$RET"

    # Add saned service, disabled by default
    if [ -x /usr/sbin/update-inetd ]; then
	update-inetd --add "#<off># sane-port\tstream\ttcp\tnowait\tsaned:saned\t/usr/sbin/saned saned"
    fi

    # Stop debconf; output to stdout after this point. update-inetd needs debconf.
    db_stop

    # Create saned user/group if they do not exist
    if ! getent passwd | grep -q "^saned:"; then
	echo "Adding saned group and user..."
	adduser --quiet --system --no-create-home --group saned || true
    fi

    if [ "$SANED_IN_SCANNER" = "true" ]; then
	adduser --quiet saned scanner
    else
	if id saned | grep -q "groups=.*\(scanner\)"; then
	    deluser --quiet saned scanner
	fi
    fi

    if [ -e $SANED_DEFAULT ]; then
	if [ "$RUN_SANED" = "true" ]; then
	    RUN_SANED=yes
	else
	    RUN_SANED=no
	fi

	sed -e "s/^ *RUN=.*/RUN=$RUN_SANED/" < $SANED_DEFAULT > $SANED_DEFAULT.tmp
	mv -f $SANED_DEFAULT.tmp $SANED_DEFAULT
    fi
fi


#DEBHELPER#