AICertification/app/flask-postgres/deploy_flask.sh
2026-04-09 16:37:36 +02:00

63 lines
2.0 KiB
Bash

#!/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."