#!/usr/bin/openrc-run

extra_started_commands="reload"

PIDFILE=/run/dbus/pid
SOCKET=/run/dbus/system_bus_socket

depend() {
	after bootmisc
	before libvirtd lightdm
	provide ${SVCNAME}
}

start() {
	ebegin "Starting D-BUS system messagebus"
	${PREFIX}/bin/dbus-uuidgen --ensure=/etc/machine-id
	[ ! -e $(dirname ${PIDFILE}) ] && mkdir $(dirname ${PIDFILE})
	start-stop-daemon --start --pidfile ${PIDFILE} --exec dbus-daemon -- --system
	eend $?
}

stop() {
	local retval
	ebegin "Stopping D-BUS system messagebus"
	start-stop-daemon --stop --pidfile ${PIDFILE}
	retval=$?
	eend ${retval}
	[ -S ${SOCKET} ] && rm -f ${SOCKET}
	return ${retval}
}

reload() {
	local retval
	ebegin "Reloading D-BUS messagebus config"
	${PREFIX}/bin/dbus-send --print-reply --system --type=method_call \
			--dest=org.freedesktop.DBus \
			/ org.freedesktop.DBus.ReloadConfig > /dev/null
	retval=$?
	eend ${retval}
	return ${retval}
}
