#!/bin/sh

start() {
	if [ ! -d /var/lib/dbus ]; then
		mkdir -p /var/lib/dbus
	fi
	if [ ! -e /var/lib/dbus/machine-id ]; then
		/usr/local/bin/dbus-uuidgen --ensure
	fi
	if [ ! -d /var/run/dbus ]; then
		mkdir -p /var/run/dbus
	fi
	if [ ! -e /var/run/dbus/pid ]; then
		/usr/local/bin/dbus-daemon --system 2>/dev/null
	fi
}

stop() {
	start-stop-daemon --stop --exec /usr/local/bin/dbus-daemon 2>/dev/null
	rm /var/run/dbus/pid
}

reload() {

        if [ -e /var/run/dbus/pid ]; then
                echo -e "\nReloading D-BUS configuration ... \c"
                if dbus-send --system --type=method_call \
                      --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig 2>/dev/null; then
                   echo -e "ok!\n"
                else
                   echo -e "failed!\n"
                fi
        else
                start
        fi

}

status() {
	if [ -e /var/run/dbus/pid ]; then
		echo -e "\ndbus is running.\n"
		exit 0
	else
		echo -e "\ndbus is not running.\n"
		exit 1
	fi
}

case $1 in
	start) start
		;;
	stop) stop
		;;
	status) status
		;;
	restart) stop; start
		;;
	reload) reload
		;;
	*) echo -e "\n$0 [start|stop|restart|reload|status]\n"
		;;
esac
