#!/bin/sh
#
# Start/stop the Bluetooth daemons
#

set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=bluetooth
DESC="Bluetooth subsystem"

HCID_NAME=hcid
SDPD_NAME=sdpd
HIDD_NAME=hidd
HID2HCI_NAME=hid2hci
RFCOMM_NAME=rfcomm
PAND_NAME=pand
DUND_NAME=dund

HCID_EXEC="`which $HCID_NAME || true`"
SDPD_EXEC="`which $SDPD_NAME || true`"
HIDD_EXEC="`which $HIDD_NAME || true`"
HID2HCI_EXEC="`which $HID2HCI_NAME || true`"
RFCOMM_EXEC="`which $RFCOMM_NAME || true`"
PAND_EXEC="`which $PAND_NAME || true`"
DUND_EXEC="`which $DUND_NAME || true`"

HCID_ENABLE=true
SDPD_ENABLE=true
HIDD_ENABLE=false
HID2HCI_ENABLE=false
RFCOMM_ENABLE=true
DUND_ENABLE=false
PAND_ENABLE=false

HCID_CONFIG="/etc/bluetooth/hcid.conf"
RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"

HIDD_OPTIONS=""
DUND_OPTIONS=""
PAND_OPTIONS=""

[ -e /etc/default/bluetooth ] && . /etc/default/bluetooth

case "$1" in
  start)
	echo -n "Starting $DESC:"
	if $HCID_ENABLE && [ -x "$HCID_EXEC" -a -f "$HCID_CONFIG" ] ; then
		$HCID_EXEC -f $HCID_CONFIG
		echo -n " $HCID_NAME"
	fi
	if $SDPD_ENABLE && [ -x "$SDPD_EXEC" ] ; then
		$SDPD_EXEC
		echo -n " $SDPD_NAME"
	fi
	if $HIDD_ENABLE && [ -x "$HIDD_EXEC" ] ; then
		$HIDD_EXEC $HIDD_OPTIONS --server || true
		echo -n " $HIDD_NAME"
	fi
	if $HID2HCI_ENABLE && [ -x "$HID2HCI_EXEC" ] ; then
		$HID2HCI_EXEC --tohci > /dev/null 2>&1 || true
		echo -n " $HID2HCI_NAME"
	fi
	if $RFCOMM_ENABLE && [ -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ] ; then
		$RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true
		echo -n " $RFCOMM_NAME"
	fi
	if $DUND_ENABLE && [ -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ] ; then
		$DUND_EXEC $DUND_OPTIONS
		echo -n " $DUND_NAME"
	fi
	if $PAND_ENABLE && [ -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ] ; then
		$PAND_EXEC $PAND_OPTIONS
		echo -n " $PAND_NAME"
	fi
	echo "."
	;;
  stop)
	echo -n "Stopping $DESC:"
	killall $PAND_NAME > /dev/null 2>&1 || true
	echo -n " $PAND_NAME"
	killall $DUND_NAME > /dev/null 2>&1 || true
	echo -n " $DUND_NAME"
	if [ -x "$RFCOMM_EXEC" ] ; then
		$RFCOMM_EXEC release all > /dev/null 2>&1 || true
		echo -n " $RFCOMM_NAME"
	fi
	killall $HIDD_NAME > /dev/null 2>&1 || true
	echo -n " $HIDD_NAME"
	killall $SDPD_NAME > /dev/null 2>&1 || true
	echo -n " $SDPD_NAME"
	killall $HCID_NAME > /dev/null 2>&1 || true
	echo -n " $HCID_NAME"
	echo "."
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop}" >&2
	exit 1
	;;
esac

exit 0
