#!/bin/sh
# Entsperrt das NAS: RAID1 prüfen, LUKS öffnen, btrfs einhängen, SMB starten
. /usr/lib/nas-gemeinsam.sh
[ -n "$LUKS_UUID" ] || { echo "Keine Konfiguration in $NASCONF – zuerst nas-einrichten."; exit 1; }
if ist_eingehaengt; then echo "NAS ist bereits entsperrt und unter $MNT eingehängt."; exit 0; fi

md_starten || { echo "RAID $MD lässt sich nicht starten – Platten prüfen (cat /proc/mdstat)."; exit 1; }
z=$(md_zustand)
case "$z" in
	*_*) echo "ACHTUNG: RAID1 ist degradiert ($z) – eine Platte fehlt oder ist ausgefallen!"
	     printf "Trotzdem entsperren? [j/N] "; read -r a; [ "$a" = j ] || exit 1
	     logger -p daemon.warn -t nas "Entsperren mit degradiertem RAID $z" ;;
esac
grep -q "resync\|recovery" /proc/mdstat && echo "Hinweis: RAID synchronisiert gerade ($(grep -o '[0-9.]*%' /proc/mdstat | head -1)) – volle Redundanz erst danach."

if [ ! -e /dev/mapper/$CRYPT ]; then
	lies_passphrase "Passphrase für das NAS: "
	[ -n "$PW" ] || { echo "Abgebrochen."; exit 1; }
	printf '%s' "$PW" | cryptsetup open --key-file=- $MD $CRYPT 2>/dev/null
	rc=$?; PW=""; unset PW
	[ $rc -eq 0 ] || { echo "Falsche Passphrase oder Fehler."; exit 1; }
fi

mkdir -p $MNT
mount -t btrfs -o noatime /dev/mapper/$CRYPT $MNT || { echo "Einhängen fehlgeschlagen."; exit 1; }
ist_eingehaengt && [ -d $MNT/$SUBVOL ] || { echo "Dateisystem nicht wie erwartet ($MNT/$SUBVOL fehlt) – SMB bleibt aus."; exit 1; }
/etc/init.d/ksmbd start
logger -t nas "entsperrt und eingehängt (RAID $z), SMB gestartet"
echo "NAS entsperrt: $(df -h $MNT | awk 'NR==2{print $2" gesamt, "$4" frei"}'), RAID $z; SMB aktiv (gemeinsam und je Benutzer)."
