113 lines
2.9 KiB
Bash
Executable File
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 ""
|