#! /bin/sh
# -*- coding: utf-8 -*-
# Debian init.d script for D-BUS
# Copyright © 2003 Colin Walters <walters@debian.org>

set -e

DAEMON=/usr/bin/dbus-daemon-1
NAME=dbus-1
DAEMONUSER=messagebus
PIDDIR=/var/run/dbus
PIDFILE=$PIDDIR/pid
DESC="system message bus"
EVENTDIR=/etc/dbus-1/event.d

test -x $DAEMON || exit 0

# Source defaults file; edit that file to configure this script.
ENABLED=1
PARAMS=""
if [ -e /etc/default/dbus-1 ]; then
	. /etc/default/dbus-1
fi

test "$ENABLED" != "0" || exit 0

start_it_up()
{
        if [ ! -d $PIDDIR ]; then
	        mkdir -p $PIDDIR
		chown $DAEMONUSER $PIDDIR
		chgrp $DAEMONUSER $PIDDIR
	fi
  	if [ -e $PIDFILE ]; then
		if [ -d /proc/`cat $PIDFILE` ]; then
			echo "$DESC already started; not starting."
		else
			echo "Removing stale PID file $PIDFILE."
			rm -f $PIDFILE
		fi
	fi
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --pidfile $PIDFILE \
		--user $DAEMONUSER --exec $DAEMON -- --system $PARAMS
	echo "$NAME."
	if [ -d $EVENTDIR ]; then
	    run-parts -a start $EVENTDIR
	fi
}

shut_it_down()
{
	if [ -d $EVENTDIR ]; then
	    run-parts -a stop $EVENTDIR
	fi
	echo -n "Stopping $DESC: "
	start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \
		--user $DAEMONUSER
	# We no longer include these arguments so that start-stop-daemon
	# can do its job even given that we may have been upgraded.
	# We rely on the pidfile being sanely managed
	# --exec $DAEMON -- --system $PARAMS
	echo "$NAME."
	rm -f $PIDFILE
}

case "$1" in
  start)
	start_it_up
	;;
  stop)
	shut_it_down
	;;
  restart|force-reload)
	shut_it_down
	sleep 1
	start_it_up
	;;
  *)
	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
