#!/bin/bash # ============================================================================ # update-dependencies.sh - Aktualisiert Dependencies und behebt Vulnerabilities # ============================================================================ set -e # Farben RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo -e "${BLUE}============================================${NC}" echo -e "${BLUE} LibreBooking Node - Dependency Update${NC}" echo -e "${BLUE}============================================${NC}" echo "" log() { echo -e "${GREEN}[INFO]${NC} $1" } warn() { echo -e "${YELLOW}[WARN]${NC} $1" } error() { echo -e "${RED}[ERROR]${NC} $1" } cd "$SCRIPT_DIR" # Schritt 1: Aktuelle Vulnerabilities anzeigen log "Prüfe aktuelle Vulnerabilities..." echo "" echo "=== VOR dem Update ===" npm audit 2>/dev/null || true echo "" # Schritt 2: npm audit fix log "Führe npm audit fix aus..." if npm audit fix 2>&1; then log "npm audit fix erfolgreich ✓" else warn "npm audit fix hatte Probleme (evtl. normale Warnungen)" fi # Schritt 3: npm update log "Führe npm update aus..." if npm update 2>&1; then log "npm update erfolgreich ✓" else warn "npm update hatte Probleme" fi # Schritt 4: Outdated Packages prüfen log "Prüfe veraltete Packages..." echo "" npm outdated 2>/dev/null || log "Alle Packages sind aktuell ✓" echo "" # Schritt 5: Build testen log "Teste Build..." if npm run build 2>&1 | tail -5; then log "Build erfolgreich ✓" else error "Build fehlgeschlagen!" echo "" echo "Versuchen Sie:" echo " 1. rm -rf node_modules package-lock.json" echo " 2. npm install" echo " 3. npm run build" exit 1 fi # Schritt 6: Finale Vulnerability-Prüfung log "Finale Vulnerability-Prüfung..." echo "" echo "=== NACH dem Update ===" npm audit 2>/dev/null || true echo "" # Schritt 7: Report echo -e "${GREEN}============================================${NC}" echo -e "${GREEN} Update abgeschlossen!${NC}" echo -e "${GREEN}============================================${NC}" echo "" # Verbleibende Vulnerabilities zählen AUDIT_OUTPUT=$(npm audit 2>/dev/null || true) if echo "$AUDIT_OUTPUT" | grep -q "found 0 vulnerabilities"; then log "Keine Vulnerabilities mehr! ✓" else VULN_COUNT=$(echo "$AUDIT_OUTPUT" | grep -oP '\d+ vulnerabilities' | head -1 || echo "Einige") warn "Verbleibende Vulnerabilities: $VULN_COUNT" echo "" echo "Diese kommen wahrscheinlich von n8n-workflow Dependencies." echo "Siehe SECURITY.md für weitere Informationen." fi echo "" echo "Nächste Schritte:" echo " 1. Testen Sie die Änderungen lokal" echo " 2. Committen Sie die Änderungen:" echo " git add package.json package-lock.json" echo " git commit -m 'chore: update dependencies'" echo " 3. Bauen Sie das Docker-Image neu:" echo " docker compose build --no-cache" echo ""