task
description	"Delay start lighdm until slapd has been started correctly"
start on starting lightdm
#stop on [!2345]
script
	[ ! -e '/etc/default/slapd' ] || . /etc/default/slapd

	if [ -z "$SLAPD_CONF" ]; then
        	if [ -e /etc/ldap/slapd.d ]; then
	                SLAPD_CONF=/etc/ldap/slapd.d
        	else
                	SLAPD_CONF=/etc/ldap/slapd.conf
	        fi
	fi

	if [ -z "$SLAPD_PIDFILE" ]; then
	        # If using old one-file configuration scheme
        	if [ -f "$SLAPD_CONF" ] ; then
                	SLAPD_PIDFILE=`sed -ne 's/^pidfile[[:space:]]\+\(.\+\)/\1/p' \
                        	"$SLAPD_CONF"`
	        # Else, if using new directory configuration scheme
        	elif [ -d "$SLAPD_CONF" ] ; then
                	SLAPD_PIDFILE=`sed -ne \
                        	's/^olcPidFile:[[:space:]]\+\(.\+\)[[:space:]]*/\1/p' \
	                        "$SLAPD_CONF"/'cn=config.ldif'`
        	fi
	fi

	if [ -z "$SLAPD_PIDFILE" ]; then
	        exit 0
	fi

	COUNT=0
	while true ; do
		if [ -f "$SLAPD_PIDFILE" ]; then
			break
		fi
		COUNT=$((COUNT+1))
		if [ $COUNT -gt 180 ]; then
			break
		fi
		sleep 1
	done
	/usr/bin/ldap-check-start
end script