summaryrefslogtreecommitdiff
path: root/debian/sane-utils.postinst
blob: b334d591d5a4faa8ef3ef981f1a0a32c0081c13d (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
set -e
. /usr/share/debconf/confmodule

SANED_DEFAULT=/etc/default/saned

#
# POSIX-compliant shell function
# to check for the existence of a command
# Return 0 if found
#
pathfind() {
    OLDIFS="$IFS"
    IFS=:
    for p in $PATH; do
        if [ -x "$p/$*" ]; then
            IFS="$OLDIFS"
            return 0
        fi
    done
    IFS="$OLDIFS"
    return 1
}



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"

    if [ -f /etc/inetd.conf ]; then
	# Add saned service, disabled by default
	if pathfind update-inetd ; then
	    update-inetd --add "#<off># sane-port\tstream\ttcp\tnowait\tsaned:saned\t/usr/sbin/saned saned"
	fi
     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 --home /var/lib/saned  --quiet --system --group saned || true
    fi

    if [ ! -d /var/lib/saned ] ; then
	usermod -d /var/lib/saned saned
    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#