#!/bin/bash set -e echo "🔧 Baue Remote-Shack (Reiner Kompilierungs-Sync)..." # Clean & Prep - Löscht alte Artefakte und erstellt die Zielordner strukturiert rm -rf app rm -f .shack_session mkdir -p app/server app/clients # 1. Server bauen echo " -> [Server] Kompiliere Haupt-Server..." go build -o ./app/server/shack-server ./cmd/server/main.go # 2. Clients bauen echo " -> [Client] Rig-Client..." go build -o ./app/clients/client-rig ./cmd/client-rig/main.go echo " -> [Client] Relais-Client..." go build -o ./app/clients/client-relais ./cmd/client-relais/main.go echo " -> [Client] Rotor-Client (Fyne GUI)..." # CGO_ENABLED=1 ist zwingend erforderlich für Grafiktreiber-Kopplung von Fyne v2.7 CGO_ENABLED=1 go build -o ./app/clients/client-rotor ./cmd/client-rotor/main.go echo " -> [Client] Volt-Monitor (ADS1115 Telemetrie)..." go build -o ./app/clients/client-volt ./cmd/client-volt/main.go # Ausführungsrechte für alle erzeugten Binaries innerhalb der app-Struktur vergeben find ./app -type f -exec chmod +x {} + echo "✅ Alle Binaries erfolgreich in ./app/ erstellt." # 3. Die Service-Datei universell generiert (nutzt systemd %h/%u Specifiers) cat << 'EOF' > ./app/spannung.service # ============================================================================== # KURZANLEITUNG ZUR INSTALLATION UND VERWALTUNG # ============================================================================== # 1. Datei kopieren nach: /etc/systemd/system/spannung.service # 2. Systemd neu laden: sudo systemctl daemon-reload # 3. Autostart aktivieren: sudo systemctl enable spannung.service # 4. Dienst starten: sudo systemctl start spannung.service # ============================================================================== [Unit] Description=Spannung Control Service After=network-online.target i2c.service Wants=network-online.target StartLimitIntervalSec=0 [Service] Type=simple ExecStartPre=/bin/bash -c 'for i in {1..10}; do i2cdetect -y 1 | grep -E "^40:" | grep -q -E "\b48\b" && exit 0; echo "warte auf ADS1115..."; sleep 2; done; exit 1' ExecStart=%h/spannung/app/spannung-arm32_7 WorkingDirectory=%h/spannung/app User=%u Restart=on-failure RestartSec=5s StartLimitIntervalSec=60s StartLimitBurst=3 StandardOutput=append:%h/spannung/app/spannung.log StandardError=append:%h/spannung/app/spannung.log [Install] WantedBy=multi-user.target EOF echo "📝 Service-Datei universell generiert (nutzt systemd %h/%u Specifiers)" echo "📂 Inhalt des fertigen app-Verzeichnisses:" ls -la app