diff options
Diffstat (limited to 'debian/sane-utils.postinst')
-rw-r--r-- | debian/sane-utils.postinst | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/debian/sane-utils.postinst b/debian/sane-utils.postinst new file mode 100644 index 0000000..cde28cf --- /dev/null +++ b/debian/sane-utils.postinst @@ -0,0 +1,89 @@ +#!/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" + + # Add saned service, disabled by default + pathfind update-inetd + if [ $? = 0 ]; 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 --home /var/lib/saned --quiet --system --group saned || true + fi + + # Move home from /home/saned to /var/lib/saned (since 1.0.24-6) + if getent passwd | grep "^saned:" | grep -q "/home/saned"; then + echo "Test for running scanbd" + if ps -Af | grep "saned" | grep -q "scanbd"; then + echo "Stop scanbd" + invoke-rc.d --quiet scanbd stop + echo "Move homedir from /home/saned to /var/lib/saned" + usermod -d /var/lib/saned saned + echo "Start scanbd" + invoke-rc.d --quiet scanbd start + else + echo "Move homedir from /home/saned to /var/lib/saned" + usermod -d /var/lib/saned saned + fi + fi + + if [ ! -d /var/lib/saned 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# |