backup_dir="$1/conf/ldap"

if [ -z "$2" ]; then

    # We need to execute this script as root, since the ldap
    # service will be shut down during the operation (and sudo
    # won't be available)
    sudo bash $(pwd)/$0 $1 sudoed

else
    service slapd stop

    # Backup old configuration
    mv /var/lib/ldap /var/lib/ldap.old

    # Recreate new DB folder
    mkdir /var/lib/ldap
    chown openldap: /var/lib/ldap
    chmod go-rwx  /var/lib/ldap

    # Restore LDAP configuration (just to be sure)
    cp -a $backup_dir/slapd.conf /etc/ldap/slapd.conf

    # Regenerate the configuration
    rm -rf /etc/ldap/slapd.d/*
    slaptest -u -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
    cp -rfp /var/lib/ldap.old/DB_CONFIG /var/lib/ldap

    # Import the database
    slapadd -l $backup_dir/slapcat.ldif

    # Change permissions and restart slapd
    chown openldap: /var/lib/ldap/*
    service slapd start
    rm -rf /var/lib/ldap.old
fi