#!/bin/bash
# Mountet WebDAV als /home/user beim Live-Boot
# Beim ersten Start werden die Default-Dateien ins WebDAV kopiert

set -e

WEBDAV_URL="https://ipxe.technik-magic-code.de/webdav"
WEBDAV_USER="user"
WEBDAV_PASS="bo16pacs"
LIVE_USERNAME="user"

# ── User + Home sicherstellen (falls user-setup still gescheitert ist) ──────
if ! id "${LIVE_USERNAME}" >/dev/null 2>&1; then
  echo "[webdav-hook] User '${LIVE_USERNAME}' fehlt – lege ihn an..."
  adduser --disabled-password --gecos "Debian Live user" --uid 1000 "${LIVE_USERNAME}" >/dev/null 2>&1 || true
  echo "${LIVE_USERNAME}:live" | chpasswd 2>/dev/null || true
  usermod -aG sudo "${LIVE_USERNAME}" 2>/dev/null || true
fi
mkdir -p "/home/${LIVE_USERNAME}"
chown "${LIVE_USERNAME}:${LIVE_USERNAME}" "/home/${LIVE_USERNAME}"

# davfs2 lautlos installieren
echo "davfs2 davfs2/suid_file boolean false" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends davfs2

# Zugangsdaten hinterlegen
mkdir -p /etc/davfs2
echo "${WEBDAV_URL} ${WEBDAV_USER} ${WEBDAV_PASS}" >> /etc/davfs2/secrets
chmod 600 /etc/davfs2/secrets

# Locking deaktivieren (nicht alle Server unterstützen es)
grep -q "^use_locks" /etc/davfs2/davfs2.conf 2>/dev/null \
  || echo "use_locks 0" >> /etc/davfs2/davfs2.conf

# Erster Start: Default-Home ins WebDAV kopieren
TEMP=$(mktemp -d)
if mount -t davfs "${WEBDAV_URL}" "${TEMP}" -o uid=1000,gid=1000,rw 2>/dev/null; then
  if [ -z "$(ls -A "${TEMP}" 2>/dev/null)" ]; then
    echo "[webdav-hook] Erster Start – kopiere Standard-Home ins WebDAV..."
    cp -a "/home/${LIVE_USERNAME}/." "${TEMP}/" 2>/dev/null || true
  fi
  umount "${TEMP}" 2>/dev/null || true
fi
rmdir "${TEMP}" 2>/dev/null || true

# WebDAV als /home/user mounten
echo "[webdav-hook] Mounte ${WEBDAV_URL} → /home/${LIVE_USERNAME}"
mount -t davfs "${WEBDAV_URL}" "/home/${LIVE_USERNAME}" -o uid=1000,gid=1000,rw
echo "[webdav-hook] /home/${LIVE_USERNAME} erfolgreich gemountet."
