#!/bin/sh -e

. shell-signal
. ldap-config

[ -n "$(echo "$1"|grep '/etc/openldap')" ] && SLAPD_CONF="$1" && shift

ldap_config "$SLAPD_CONF"

TMPFILE="$(mktemp -t "ldap-db-init.XXXXXXXXXX")" || fatal "can't create tempfile"

set_cleanup_handler cleanup_function

cleanup_function()
{
	[ -z "$TMPFILE" ] ||
		rm -rf -- "$TMPFILE"
}

db_dir="$(read_config "$SLAPD_CONF" directory)"

cat > "$TMPFILE" <<EOF
dn: $base
objectclass: organization
objectclass: dcObject
$(printf %s\\n "$base" | sed -r 's/^dc=([^[:space:],]*).*$/dc: \1/')
$(printf %s\\n "$base" | sed -r 's/^.*dc=([^[:space:],]*)/o: \1/')

dn: $rootdn
objectclass: organizationalRole
$(printf %s\\n "$rootdn" | sed -r 's/^cn=([^[:space:],]*).*$/cn: \1/')

dn: ou=People,$base
objectClass: organizationalUnit
ou: People

dn: ou=Group,$base
objectClass: organizationalUnit
ou: Group

dn: ou=kdcroot,$base
objectClass: organizationalUnit
ou: kdcroot
EOF


#adding changed ldif
mkdir -p "$db_dir"
chmod 700 "$db_dir"
slapadd -b "$base" -l "$TMPFILE"
chown -R ldap:ldap "$db_dir"

rm -f -- "$TMPFILE" >&2
