diff --git a/deploy-test.sh b/deploy-test.sh index 0e0f723..f8649cf 100755 --- a/deploy-test.sh +++ b/deploy-test.sh @@ -13,6 +13,14 @@ echo "" echo "Working directory: $(pwd)" echo "" +if [ "${EUID:-$(id -u)}" -eq 0 ]; then + echo "ERROR: Dieses Script darf nicht mit sudo/root ausgeführt werden." + echo "Grund: HOME=/root würde DATA/BACKUP unter /root anlegen und Git-SSH des normalen Users umgehen." + echo "Bitte so starten:" + echo " ./deploy-test.sh" + exit 1 +fi + if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then echo "ERROR: Dieses Script muss im Git-Repository ausgeführt werden (kein .git gefunden)." exit 1 @@ -37,6 +45,12 @@ ensure_symlink_dir() { fi if [ -d "$src" ]; then + if [ ! -w "$src" ]; then + echo "ERROR: Keine Schreibrechte auf $src" + echo "Bitte Besitz korrigieren, dann erneut starten:" + echo " sudo chown -R $(id -un):$(id -gn) \"$src\"" + exit 1 + fi echo " Moving $src -> $target (first-time migration)" # Merge existing content into target cp -a "$src/." "$target/" || true @@ -129,7 +143,18 @@ git clean -fd \ # Pull latest changes echo " Pulling latest changes..." -git pull +if ! git pull --ff-only; then + echo "ERROR: git pull fehlgeschlagen." + echo "" + echo "Häufige Ursache: SSH-Key für den aktuellen User fehlt." + echo "Prüfen:" + echo " ssh -T git@tsschulz.de" + echo "" + echo "Optional auf HTTPS wechseln:" + echo " git remote set-url origin https://tsschulz.de//.git" + echo "Oder SSH-Key für User $(id -un) hinterlegen." + exit 1 +fi # Reset any accidental changes from stash restore (should be none now) git reset --hard HEAD >/dev/null 2>&1