2025-12-30 22:52:58 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
# Script to update version number across the project
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
2026-01-14 23:14:07 +01:00
|
|
|
echo "Usage: $0 <backend_version> [frontend_version] [auto]"
|
2025-12-30 22:52:58 +01:00
|
|
|
echo "Example: $0 0.1.31 # Sets both to 0.1.31"
|
|
|
|
|
echo "Example: $0 0.1.31 0.2.0 # Sets different versions"
|
2026-01-14 23:14:07 +01:00
|
|
|
echo "Example: $0 0.1.31 auto # Sets both to 0.1.31 and auto-commits"
|
|
|
|
|
echo "Example: $0 0.1.31 0.2.0 auto # Sets different versions and auto-commits"
|
2025-12-30 22:52:58 +01:00
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2026-01-14 23:14:07 +01:00
|
|
|
# Parse arguments
|
2025-12-30 22:52:58 +01:00
|
|
|
BACKEND_VERSION="$1"
|
2026-01-14 23:14:07 +01:00
|
|
|
AUTO_COMMIT=false
|
|
|
|
|
|
|
|
|
|
# Check if second argument is "auto"
|
|
|
|
|
if [ "$2" = "auto" ]; then
|
|
|
|
|
FRONTEND_VERSION="$1"
|
|
|
|
|
AUTO_COMMIT=true
|
|
|
|
|
elif [ -z "$2" ]; then
|
|
|
|
|
FRONTEND_VERSION="$1"
|
|
|
|
|
elif [ "$3" = "auto" ]; then
|
|
|
|
|
FRONTEND_VERSION="$2"
|
|
|
|
|
AUTO_COMMIT=true
|
|
|
|
|
else
|
|
|
|
|
FRONTEND_VERSION="$2"
|
|
|
|
|
fi
|
|
|
|
|
|
2025-12-30 22:52:58 +01:00
|
|
|
|
|
|
|
|
if [ "$BACKEND_VERSION" = "$FRONTEND_VERSION" ]; then
|
|
|
|
|
echo "Updating both backend and frontend to version $BACKEND_VERSION..."
|
|
|
|
|
else
|
|
|
|
|
echo "Updating backend to $BACKEND_VERSION and frontend to $FRONTEND_VERSION..."
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Update backend version
|
|
|
|
|
BACKEND_VERSION_FILE="backend/config/version.go"
|
|
|
|
|
if [ -f "$BACKEND_VERSION_FILE" ]; then
|
|
|
|
|
sed -i "s/const Version = \"[^\"]*\"/const Version = \"$BACKEND_VERSION\"/" "$BACKEND_VERSION_FILE"
|
|
|
|
|
echo "✓ Updated $BACKEND_VERSION_FILE to $BACKEND_VERSION"
|
|
|
|
|
else
|
|
|
|
|
echo "⚠ Warning: $BACKEND_VERSION_FILE not found"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Update frontend version
|
|
|
|
|
FRONTEND_VERSION_FILE="frontend/src/version.js"
|
|
|
|
|
if [ -f "$FRONTEND_VERSION_FILE" ]; then
|
|
|
|
|
sed -i "s/export const VERSION = '[^']*'/export const VERSION = '$FRONTEND_VERSION'/" "$FRONTEND_VERSION_FILE"
|
|
|
|
|
echo "✓ Updated $FRONTEND_VERSION_FILE to $FRONTEND_VERSION"
|
|
|
|
|
else
|
|
|
|
|
echo "⚠ Warning: $FRONTEND_VERSION_FILE not found"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Update frontend package.json version
|
|
|
|
|
FRONTEND_PACKAGE="frontend/package.json"
|
|
|
|
|
if [ -f "$FRONTEND_PACKAGE" ]; then
|
|
|
|
|
sed -i "s/\"version\": \"[^\"]*\"/\"version\": \"$FRONTEND_VERSION\"/" "$FRONTEND_PACKAGE"
|
|
|
|
|
echo "✓ Updated $FRONTEND_PACKAGE to $FRONTEND_VERSION"
|
|
|
|
|
else
|
|
|
|
|
echo "⚠ Warning: $FRONTEND_PACKAGE not found"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Update VERSION.md files
|
|
|
|
|
BACKEND_VERSION_MD="backend/VERSION.md"
|
|
|
|
|
if [ -f "$BACKEND_VERSION_MD" ]; then
|
|
|
|
|
sed -i "s/## Current Version: .*/## Current Version: $BACKEND_VERSION/" "$BACKEND_VERSION_MD"
|
|
|
|
|
echo "✓ Updated $BACKEND_VERSION_MD to $BACKEND_VERSION"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
FRONTEND_VERSION_MD="frontend/VERSION.md"
|
|
|
|
|
if [ -f "$FRONTEND_VERSION_MD" ]; then
|
|
|
|
|
sed -i "s/## Current Version: .*/## Current Version: $FRONTEND_VERSION/" "$FRONTEND_VERSION_MD"
|
|
|
|
|
echo "✓ Updated $FRONTEND_VERSION_MD to $FRONTEND_VERSION"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "✅ Version update complete!"
|
|
|
|
|
echo " Backend: $BACKEND_VERSION"
|
|
|
|
|
echo " Frontend: $FRONTEND_VERSION"
|
|
|
|
|
echo ""
|
2026-01-14 23:14:07 +01:00
|
|
|
|
|
|
|
|
# Auto-commit if requested
|
|
|
|
|
if [ "$AUTO_COMMIT" = true ]; then
|
|
|
|
|
echo "Auto-committing changes..."
|
|
|
|
|
if [ "$BACKEND_VERSION" = "$FRONTEND_VERSION" ]; then
|
|
|
|
|
git add backend/config/version.go frontend/src/version.js frontend/package.json frontend/VERSION.md
|
|
|
|
|
git commit -m "Bump version to $BACKEND_VERSION"
|
|
|
|
|
git tag v$BACKEND_VERSION
|
|
|
|
|
echo "✓ Committed and tagged as v$BACKEND_VERSION"
|
|
|
|
|
else
|
|
|
|
|
git add backend/config/version.go frontend/src/version.js frontend/package.json frontend/VERSION.md
|
|
|
|
|
git commit -m "Bump backend to $BACKEND_VERSION, frontend to $FRONTEND_VERSION"
|
|
|
|
|
git tag backend-v$BACKEND_VERSION
|
|
|
|
|
git tag frontend-v$FRONTEND_VERSION
|
|
|
|
|
git tag v$BACKEND_VERSION -m "Backend version $BACKEND_VERSION, Frontend version $FRONTEND_VERSION"
|
|
|
|
|
echo "✓ Committed and tagged as backend-v$BACKEND_VERSION, frontend-v$FRONTEND_VERSION, v$BACKEND_VERSION"
|
|
|
|
|
fi
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Next step:"
|
|
|
|
|
echo " Push: git push && git push --tags"
|
2025-12-30 22:52:58 +01:00
|
|
|
else
|
2026-01-14 23:14:07 +01:00
|
|
|
echo "Next steps:"
|
|
|
|
|
echo "1. Review changes: git diff"
|
|
|
|
|
if [ "$BACKEND_VERSION" = "$FRONTEND_VERSION" ]; then
|
|
|
|
|
echo "2. Commit changes: git commit -am 'Bump version to $BACKEND_VERSION'"
|
|
|
|
|
echo "3. Tag release: git tag v$BACKEND_VERSION"
|
|
|
|
|
git tag v$BACKEND_VERSION
|
|
|
|
|
else
|
|
|
|
|
echo "2. Commit changes: git commit -am 'Bump backend to $BACKEND_VERSION, frontend to $FRONTEND_VERSION'"
|
|
|
|
|
echo "3. Tag releases: git tag backend-v$BACKEND_VERSION && git tag frontend-v$FRONTEND_VERSION"
|
|
|
|
|
git tag backend-v$BACKEND_VERSION
|
|
|
|
|
git tag frontend-v$FRONTEND_VERSION
|
|
|
|
|
git tag v$BACKEND_VERSION -m "Backend version $BACKEND_VERSION, Frontend version $FRONTEND_VERSION"
|
|
|
|
|
fi
|
|
|
|
|
echo "4. Push: git push && git push --tags"
|
2025-12-30 22:52:58 +01:00
|
|
|
fi
|