#!/bin/sh

test -e /usr/sbin/slapd || exit 0
test -f /etc/ldap/slapd.conf || exit 0

start() {
	echo -n "Starting OpenLDAP: slapd"
	start-stop-daemon --start --quiet --pidfile "$pf" --exec /usr/sbin/slapd
	if [ "$doslurp" ] ; then
		echo -n " slurpd"
		start-stop-daemon --start --quiet --exec /usr/sbin/slurpd -- -t /var/spool/slurpd
	fi
	echo .
}

stop() {
	echo -n "Stopping OpenLDAP: slapd"
	start-stop-daemon --stop --quiet --pidfile "$pf" --exec /usr/sbin/slapd
	if [ "$doslurp" ] ; then
		echo -n " slurpd"
		start-stop-daemon --stop --quiet --exec /usr/sbin/slurpd
	fi
	echo .
}

pf=$(sed -ne 's/^pidfile[[:space:]]\+\(.\+\)/\1/p' /etc/ldap/slapd.conf)
if [ -z "$pf" ] ; then
	pf="/var/run/slapd.pid"
fi

if grep -q '^replica' /etc/ldap/slapd.conf > /dev/null 2>&1 ; then
	doslurp="yes"
else
	doslurp=""
fi

if [ "$1" = "start" ] ; then
	start
elif [ "$1" = "stop" ] ; then
	stop
elif [ "$1" = "restart" -o "$1" = "force-reload" ] ; then
	stop
	start
else
	cat <<EOF >&2

Usage:
	$0 (start|stop|restart|force-reload)

EOF
	exit 1
fi

exit 0

