#!/bin/bash # Bricht das Skript ab, falls ein Befehl (z. B. der Build) fehlschlägt set -e # --- Variablen (Bitte anpassen!) --- IMAGE_NAME="qt-cross-rpi" # Trage hier den genauen Namen deines fertig kompilierten Executables ein: BINARY_NAME="BionxControl" TARGET_USER="chris" TARGET_IP="192.168.0.106" TARGET_DIR="/home/chris/projects/BionxControl" # Den Namen der Toolchain aus deiner Vorlage oder der zuvor erstellten Datei TOOLCHAIN_FILE="armhf-toolchain.cmake" echo "=== 1. Baue das Docker-Image ===" docker build -t ${IMAGE_NAME} . echo "=== 2. Kompiliere das Projekt im Container ===" # Wir führen die Build-Befehle direkt im Container aus, anstatt interaktiv zu starten. # Das -it flag wurde entfernt, da wir es als Skript ausführen. docker run --rm -v "$(pwd):/workspace" ${IMAGE_NAME} bash -c " echo 'Bereinige altes Build-Verzeichnis...' rm -rf dockerbuild mkdir dockerbuild cd dockerbuild echo 'Führe CMake aus...' cmake -DCMAKE_TOOLCHAIN_FILE=../${TOOLCHAIN_FILE} -G Ninja .. echo 'Starte Build (Ninja)...' ninja " echo "=== 3. Deploy auf den Raspberry Pi via scp ===" # Kopiert das neu gebaute Binary auf die Zielmaschine scp "dockerbuild/${BINARY_NAME}" "${TARGET_USER}@${TARGET_IP}:${TARGET_DIR}" echo "=== Deployment erfolgreich abgeschlossen! ==="