#!/bin/bash

# Aktiviert Autovervollständigung für Dateipfade
read -e -p "Pfad zur LDIF-Datei eingeben: " LDIF_PATH

# Prüfen ob Datei existiert
if [[ ! -f "$LDIF_PATH" ]]; then
    echo "Datei nicht gefunden: $LDIF_PATH"
    exit 1
fi

# Temporäre Dateien
TMP_DIR=$(mktemp -d)
LDIF_TMP="$TMP_DIR/filtered.ldif"

# Samba DB Pfad (anpassen falls nötig)
SAMBA_DB_PATH="/var/lib/samba/private/sam.ldb"

# Filtert alle DNs aus der LDIF-Datei
grep -E '^dn:' "$LDIF_PATH" | while read -r LINE; do
    DN=$(echo "$LINE" | cut -d':' -f2- | sed 's/^ *//')

    # Prüfen ob DN bereits existiert
    if ldbsearch -H "$SAMBA_DB_PATH" -b "$DN" dn > /dev/null 2>&1; then
        echo "Objekt vorhanden: $DN"
    else
        # Extrahiere kompletten Block zu diesem DN
        awk -v dn="$DN" '
            BEGIN { found=0 }
            /^dn:/ {
                if (found) exit;
                if ($0 ~ dn) found=1;
            }
            { if (found) print }
        ' "$LDIF_PATH" > "$LDIF_TMP"

        # Importieren
        if ldbadd -H "$SAMBA_DB_PATH" "$LDIF_TMP" > /dev/null 2>&1; then
            echo "Erfolgreich importiert DN: $DN"
        else
            echo "Fehler beim Import DN: $DN"
        fi
    fi
done

# Aufräumen
rm -rf "$TMP_DIR"
