#!/bin/bash # # Wiederkehrende Qualitäts- und Sicherheitsprüfung. # # Gedacht für den nächtlichen Lauf auf dem Spark (todo-sonar.timer), kann aber jederzeit # von Hand gestartet werden: bash scripts/quality-check.sh # # Bewusst NICHT auf dem Produktionscontainer: LXC 202 hat 2 Kerne und bedient Live-Verkehr, # und ein Scan zur Deploy-Zeit findet Probleme erst, nachdem sie ausgeliefert wurden. main() { set -uo pipefail # kein -e: jede Prüfung soll laufen, auch wenn eine vorher meckert local FAILED=0 step() { echo; echo "=== $1 ==="; } cd "$(dirname "$0")/.." step "Abhängigkeiten auf bekannte Sicherheitslücken" npm audit --audit-level=high || FAILED=1 step "TypeScript" npm run type-check || FAILED=1 step "ESLint" npm run lint || FAILED=1 step "SonarQube" if command -v todo-sonar-scan >/dev/null; then todo-sonar-scan || FAILED=1 else echo "todo-sonar-scan nicht gefunden — übersprungen" fi echo if [ "$FAILED" -eq 0 ]; then echo "=== Alle Prüfungen bestanden ===" else echo "=== Mindestens eine Prüfung hat angeschlagen (siehe oben) ===" fi return "$FAILED" } main "$@"