52 lines
1.1 KiB
Bash
52 lines
1.1 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Bumps the version in version.properties before a release build.
|
||
|
|
# Usage: ./bump-version.sh [major|minor|patch]
|
||
|
|
# Default: patch
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
PROPS_FILE="$(dirname "$0")/version.properties"
|
||
|
|
|
||
|
|
if [[ ! -f "$PROPS_FILE" ]]; then
|
||
|
|
echo "Error: $PROPS_FILE not found" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Read current values
|
||
|
|
major=$(grep '^versionMajor=' "$PROPS_FILE" | cut -d= -f2)
|
||
|
|
minor=$(grep '^versionMinor=' "$PROPS_FILE" | cut -d= -f2)
|
||
|
|
patch=$(grep '^versionPatch=' "$PROPS_FILE" | cut -d= -f2)
|
||
|
|
code=$(grep '^versionCode=' "$PROPS_FILE" | cut -d= -f2)
|
||
|
|
|
||
|
|
bump_type="${1:-patch}"
|
||
|
|
|
||
|
|
case "$bump_type" in
|
||
|
|
major)
|
||
|
|
major=$((major + 1))
|
||
|
|
minor=0
|
||
|
|
patch=0
|
||
|
|
;;
|
||
|
|
minor)
|
||
|
|
minor=$((minor + 1))
|
||
|
|
patch=0
|
||
|
|
;;
|
||
|
|
patch)
|
||
|
|
patch=$((patch + 1))
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "Usage: $0 [major|minor|patch]" >&2
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
code=$((code + 1))
|
||
|
|
|
||
|
|
# Write updated values
|
||
|
|
cat > "$PROPS_FILE" << EOF
|
||
|
|
versionMajor=$major
|
||
|
|
versionMinor=$minor
|
||
|
|
versionPatch=$patch
|
||
|
|
versionCode=$code
|
||
|
|
EOF
|
||
|
|
|
||
|
|
echo "$major.$minor.$patch (versionCode=$code)"
|