#!/bin/bash # Synchronisiert Versionsnummer über das gesamte Projekt set -e # Farben für Output GREEN='\033[0;32m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Hole Version aus frontend/package.json (als Single Source of Truth) FRONTEND_VERSION=$(node -p "require('./frontend/package.json').version") echo -e "${BLUE}📦 Synchronisiere Version: ${GREEN}${FRONTEND_VERSION}${NC}" # 1. Backend package.json aktualisieren echo " ├─ Backend package.json..." cd backend npm version $FRONTEND_VERSION --no-git-tag-version --allow-same-version cd .. # 2. Footer.js Fallback aktualisieren echo " ├─ Frontend Footer.js Fallback..." sed -i "s/const version = window\._env_\?\.APP_VERSION || '[^']*'/const version = window._env_?.APP_VERSION || '${FRONTEND_VERSION}'/" frontend/src/Components/ComponentUtils/Footer.js # 3. OpenAPI generate-openapi.js aktualisieren echo " ├─ Backend OpenAPI Spec..." sed -i "s/version: '[0-9]\+\.[0-9]\+\.[0-9]\+'/version: '${FRONTEND_VERSION}'/" backend/src/generate-openapi.js # 4. Docker Compose Files (optional, falls vorhanden) if [ -f "docker/prod/docker-compose.yml" ]; then echo " ├─ Docker Compose (prod)..." sed -i "s/image: hobbyhimmel\/image-uploader-frontend:[0-9]\+\.[0-9]\+\.[0-9]\+/image: hobbyhimmel\/image-uploader-frontend:${FRONTEND_VERSION}/" docker/prod/docker-compose.yml || true sed -i "s/image: hobbyhimmel\/image-uploader-backend:[0-9]\+\.[0-9]\+\.[0-9]\+/image: hobbyhimmel\/image-uploader-backend:${FRONTEND_VERSION}/" docker/prod/docker-compose.yml || true fi # 5. OpenAPI Spec neu generieren echo " ├─ Regeneriere OpenAPI Spec..." cd backend npm run generate-openapi > /dev/null 2>&1 cd .. echo -e "${GREEN}✓ Alle Versionen auf ${FRONTEND_VERSION} synchronisiert!${NC}" echo "" echo "Nächste Schritte:" echo " 1. CHANGELOG.md manuell aktualisieren" echo " 2. Git commit: git add -A && git commit -m 'chore: bump version to v${FRONTEND_VERSION}'" echo " 3. Git tag: git tag v${FRONTEND_VERSION}" echo " 4. Push: git push && git push --tags"