#!/bin/bash set -euo pipefail SRC_ROOT="/Volumes/MacBook SD/Projekte/compliance-verification/app/flask-postgres" DST_ROOT="/Volumes/docker/flask-postgres" CONTAINER_NAME="flask_web" echo "Starte Deployment für compliance-verification ..." # Quellen prüfen [ -d "$SRC_ROOT/app" ] || { echo "Quelle app fehlt: $SRC_ROOT/app"; exit 1; } [ -d "$SRC_ROOT/images" ] || { echo "Quelle images fehlt: $SRC_ROOT/images"; exit 1; } [ -d "$SRC_ROOT/styles" ] || { echo "Quelle styles fehlt: $SRC_ROOT/styles"; exit 1; } # Ziele prüfen [ -d "$DST_ROOT/app" ] || { echo "Ziel app fehlt: $DST_ROOT/app"; exit 1; } [ -d "$DST_ROOT/images" ] || { echo "Ziel images fehlt: $DST_ROOT/images"; exit 1; } [ -d "$DST_ROOT/styles" ] || { echo "Ziel styles fehlt: $DST_ROOT/styles"; exit 1; } # Schutz: andere Projekte / DB dürfen nicht angefasst werden [ -d "$DST_ROOT/app-unternehmen" ] && echo "Schutz aktiv: $DST_ROOT/app-unternehmen wird nicht angerührt." [ -d "$DST_ROOT/unternehmen" ] && echo "Schutz aktiv: $DST_ROOT/unternehmen wird nicht angerührt." [ -d "$DST_ROOT/db" ] && echo "Schutz aktiv: $DST_ROOT/db wird nicht angerührt." echo "Synchronisiere app/ ..." rsync -av --delete \ --exclude '.DS_Store' \ --exclude '._*' \ --exclude '__pycache__/' \ --exclude '*.pyc' \ --exclude 'images/' \ --exclude 'styles/' \ --exclude 'files/' \ --exclude 'Dockerfile.txt' \ --exclude 'app-unternehmen/' \ --exclude 'unternehmen/' \ --exclude 'db/' \ "$SRC_ROOT/app/" "$DST_ROOT/app/" echo "Synchronisiere images/ ..." rsync -av --delete \ --exclude '.DS_Store' \ --exclude '._*' \ --exclude 'videos/' \ "$SRC_ROOT/images/" "$DST_ROOT/images/" echo "Synchronisiere styles/ ..." rsync -av --delete \ --exclude '.DS_Store' \ --exclude '._*' \ "$SRC_ROOT/styles/" "$DST_ROOT/styles/" echo "Diese Pfade werden bewusst NICHT angefasst:" echo " - $DST_ROOT/files" echo " - $DST_ROOT/app-unternehmen" echo " - $DST_ROOT/unternehmen" echo " - $DST_ROOT/db" echo "Starte Container manuell neu ..." # docker restart "${CONTAINER_NAME}" echo "Deployment abgeschlossen."