n8n_node_librebooking/update-dependencies.sh

113 lines
2.9 KiB
Bash
Executable File

#!/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 ""