Spannung/install.sh

73 lines
2.2 KiB
Bash

# 3. Die Service-Datei mit Platzhaltern generieren
cat << 'EOF' > ./app/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" && i2cdetect -y 1 | grep -E "40:" | grep -q -E "\b49\b" && exit 0; echo "warte auf ADS1115 Module..."; sleep 2; done; exit 1'
# Diese Platzhalter werden beim Installieren auf dem Pi automatisch ersetzt:
ExecStart={{TARGET_DIR}}/{{BINARY}}
WorkingDirectory={{TARGET_DIR}}
User={{TARGET_USER}}
Restart=on-failure
RestartSec=5s
StartLimitIntervalSec=60s
StartLimitBurst=3
StandardOutput=append:{{TARGET_DIR}}/spannung.log
StandardError=append:{{TARGET_DIR}}/spannung.log
[Install]
WantedBy=multi-user.target
EOF
# 4. Ein automatisches Installations-Skript für den Pi im app-Ordner erstellen
cat << 'EOF' > ./app/install.sh
#!/bin/bash
set -e
echo "🚀 Starte automatische Einrichtung des Spannung-Monitors..."
# Pfade und Benutzer auf dem aktuellen Pi ermitteln
PI_DIR=$(pwd)
PI_USER=$(whoami)
# Architektur des Betriebssystems prüfen
ARCH=$(uname -m)
if [ "$ARCH" = "aarch64" ]; then
BINARY="spannung-arm64"
echo "🎯 64-Bit OS erkannt. Nutze: $BINARY"
else
BINARY="spannung-arm32_7"
echo "🎯 32-Bit OS erkannt. Nutze: $BINARY"
fi
# Platzhalter in der Service-Datei direkt auf dem Pi ersetzen
sed -i "s|{{TARGET_DIR}}|$PI_DIR|g" spannung.service
sed -i "s|{{TARGET_USER}}|$PI_USER|g" spannung.service
sed -i "s|{{BINARY}}|$BINARY|g" spannung.service
echo "📝 Service-Datei wurde erfolgreich für diesen Pi konfiguriert."
# Service in das Systemverzeichnis kopieren und aktivieren
echo "⚙️ Kopiere Service-Datei nach /etc/systemd/system/..."
sudo cp spannung.service /etc/systemd/system/spannung.service
sudo systemctl daemon-reload
sudo systemctl enable spannung.service
echo "▶️ Starte den Dienst..."
sudo systemctl restart spannung.service
echo "✅ Fertig! Der Spannung-Monitor läuft und der Autostart ist aktiv."
EOF
chmod +x ./app/install.sh
echo "📝 Service-Datei und install.sh generiert."
echo "📂 Inhalt des fertigen app-Verzeichnisses:"
ls -la app