69 lines
2.0 KiB
Bash
Executable File
69 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# bump_version.sh - Bump pgmorbac version across all relevant files
|
|
# Usage: ./tools/bump_version.sh <new_version>
|
|
# Example: ./tools/bump_version.sh 1.1.0
|
|
|
|
set -e
|
|
|
|
NEW_VERSION="${1:-}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CONTROL_FILE="$ROOT_DIR/pgmorbac.control"
|
|
META_FILE="$ROOT_DIR/META.json"
|
|
README_FILE="$ROOT_DIR/README.md"
|
|
|
|
# --- Validate input ---
|
|
if [ -z "$NEW_VERSION" ]; then
|
|
echo "Usage: $0 <new_version>"
|
|
echo "Example: $0 1.1.0"
|
|
exit 1
|
|
fi
|
|
|
|
if ! echo "$NEW_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
|
echo "Error: version must follow semver format X.Y.Z (e.g. 1.1.0)"
|
|
exit 1
|
|
fi
|
|
|
|
# --- Get current version ---
|
|
OLD_VERSION=$(./tools/get_version.sh "$CONTROL_FILE")
|
|
|
|
if [ "$OLD_VERSION" = "$NEW_VERSION" ]; then
|
|
echo "Already at version $NEW_VERSION, nothing to do."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Bumping version: $OLD_VERSION -> $NEW_VERSION"
|
|
|
|
# --- pgmorbac.control ---
|
|
sed -i.bak "s/default_version = '$OLD_VERSION'/default_version = '$NEW_VERSION'/" "$CONTROL_FILE"
|
|
echo " Updated $CONTROL_FILE"
|
|
|
|
# --- META.json ---
|
|
sed -i.bak \
|
|
-e "s/\"version\": \"$OLD_VERSION\"/\"version\": \"$NEW_VERSION\"/g" \
|
|
-e "s/pgmorbac--$OLD_VERSION\.sql/pgmorbac--$NEW_VERSION.sql/g" \
|
|
"$META_FILE"
|
|
echo " Updated $META_FILE"
|
|
|
|
# --- README.md (hardcoded version references in manual install section) ---
|
|
sed -i.bak \
|
|
-e "s/pgmorbac--$OLD_VERSION\.sql/pgmorbac--$NEW_VERSION.sql/g" \
|
|
"$README_FILE"
|
|
echo " Updated $README_FILE"
|
|
|
|
# --- Clean up .bak files ---
|
|
find "$ROOT_DIR" -maxdepth 1 -name "*.bak" -delete
|
|
find "$ROOT_DIR/tools" -maxdepth 1 -name "*.bak" -delete
|
|
|
|
echo ""
|
|
echo "Done. Version is now $NEW_VERSION."
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. Add a [$NEW_VERSION] section to CHANGELOG.md"
|
|
echo " 2. Run: make build"
|
|
echo " 3. Run: make test"
|
|
echo " 4. Commit: git commit -am \"chore: bump version to $NEW_VERSION\""
|
|
echo " 5. Tag: git tag -a v$NEW_VERSION -m \"Release $NEW_VERSION\""
|
|
echo " 6. Push: git push && git push --tags"
|