#!/bin/sh -e

# Author: Jonathan Riddell <jriddell@ubuntu.com>
# (C) 2006  Canonical Ltd.
#
# Enable or disable Avahi by setting /etc/default/avahi-daemon
# and restart daemon
#
# Argument:
# 0: disable Avahi 
# 1: enabled Avahi
# Return 0 on success, or 1 on failure (prints error to stderr)

STATUS_SCRIPT=/usr/share/avahi/avahi_status
CONF=/etc/default/avahi-daemon

[ -x $STATUS_SCRIPT ] || {
    echo "Error: cannot execute $STATUS_SCRIPT" >&2
    exit 1
}

set +e
$STATUS_SCRIPT
STATUS=$?
set -e

case "$1" in
    0)
	NEWVAL=0
	;;
    1)
	NEWVAL=1
	;;
    *)
	echo "Invalid argument (must be 0 or 1)" >&2
	exit 1
	;;
esac

[ $STATUS = 0 -o $STATUS = 1 ] || {
    echo "Error: cannot modify custom configuration" >&2
    exit 1
}

# nothing to do?
[ $1 != $STATUS ] || exit 0


if [ $1 = 0 ]; then
	sed -ri "s/^[[:space:]]*AVAHI_DAEMON_START=1/AVAHI_DAEMON_START=0/i" $CONF
	if [ -x "/etc/init.d/avahi-daemon" ]; then
	    if [ -x /usr/sbin/invoke-rc.d ]; then
		invoke-rc.d avahi-daemon stop || exit 0
	    else
		/etc/init.d/avahi-daemon stop || exit 0
	    fi
	fi
else
	sed -ri "s/^[[:space:]]*AVAHI_DAEMON_START=0/AVAHI_DAEMON_START=1/i" $CONF
	if [ -x "/etc/init.d/avahi-daemon" ]; then
	    if [ -x /usr/sbin/invoke-rc.d ]; then
		invoke-rc.d avahi-daemon start || exit 0
	    else
		/etc/init.d/avahi-daemon start || exit 0
	    fi
	fi
fi
	
