60 lines
2.2 KiB
Bash
Executable file
60 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
echo "🔄 Starting version bump process..."
|
|
|
|
# Check if we're in the project root
|
|
if [ ! -f "mnemo_cards_web_v2/pubspec.yaml" ]; then
|
|
echo "❌ Error: This script must be run from the project root directory"
|
|
exit 1
|
|
fi
|
|
|
|
# Get current version from pubspec.yaml
|
|
CURRENT_VERSION=$(grep "^version:" mnemo_cards_web_v2/pubspec.yaml | cut -d' ' -f2 | tr -d "'\"")
|
|
echo "📊 Current version: $CURRENT_VERSION"
|
|
|
|
# Parse version components (format: major.minor.patch+build)
|
|
if [[ $CURRENT_VERSION =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)(\+([0-9]+))?$ ]]; then
|
|
MAJOR=${BASH_REMATCH[1]}
|
|
MINOR=${BASH_REMATCH[2]}
|
|
PATCH=${BASH_REMATCH[3]}
|
|
BUILD=${BASH_REMATCH[5]:-0}
|
|
|
|
# Increment patch version
|
|
NEW_PATCH=$((PATCH + 1))
|
|
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH+$((BUILD + 1))"
|
|
else
|
|
echo "❌ Error: Invalid version format: $CURRENT_VERSION"
|
|
echo "Expected format: major.minor.patch+build"
|
|
exit 1
|
|
fi
|
|
|
|
echo "⬆️ New version: $NEW_VERSION"
|
|
|
|
# Update API config (remove +build part for display version)
|
|
DISPLAY_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS
|
|
sed -i '' "s/^version: .*/version: $NEW_VERSION/" mnemo_cards_web_v2/pubspec.yaml
|
|
sed -i '' "s/static const String appVersion = '.*';/static const String appVersion = '$DISPLAY_VERSION';/" mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
|
|
else
|
|
# Linux
|
|
sed -i "s/^version: .*/version: $NEW_VERSION/" mnemo_cards_web_v2/pubspec.yaml
|
|
sed -i "s/static const String appVersion = '.*';/static const String appVersion = '$DISPLAY_VERSION';/" mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
|
|
fi
|
|
echo "✅ Updated mnemo_cards_web_v2/pubspec.yaml"
|
|
echo "✅ Updated mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart"
|
|
|
|
# Commit the changes
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "📝 Committing version bump..."
|
|
git add mnemo_cards_web_v2/pubspec.yaml
|
|
git add mnemo_cards_web_v2/lib/domain/config/api_config_v2.dart
|
|
git commit -m "🔄 Bump version to $NEW_VERSION"
|
|
echo "✅ Version bump committed"
|
|
else
|
|
echo "⚠️ No changes to commit"
|
|
fi
|
|
|
|
echo "🎉 Version successfully bumped to $NEW_VERSION"
|