Files
tuliprox/bin/inc_version.sh
2026-03-13 15:17:20 +01:00

49 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
WORKING_DIR=$(pwd)
if ! command -v cargo-set-version &> /dev/null
then
echo "🧨 cargo-set-version could not be found. Install it with 'cargo install cargo-edit'"
exit 1
fi
# Read current version from Cargo.toml
OLD_VERSION=$(grep -Po '^version\s*=\s*"\K[0-9\.]+' "${WORKING_DIR}/Cargo.toml")
if [ -z "${OLD_VERSION}" ]; then
echo "🧨 Failed to read version from '${WORKING_DIR}/Cargo.toml' (expected a line like: version = \"x.y.z\")."
exit 1
fi
# Remove pre-release and build metadata (e.g., 1.0.0-dev → 1.0.0)
CLEAN_VERSION="${OLD_VERSION%%-*}"
CLEAN_VERSION="${CLEAN_VERSION%%+*}"
IFS='.' read -r major minor patch <<< "$CLEAN_VERSION"
case "$1" in
k)
;;
m) # Major bump
major=$((major + 1))
minor=0
patch=0
;;
p) # Minor bump
minor=$((minor + 1))
patch=0
;;
*) # Patch bump (default)
patch=$((patch + 1))
;;
esac
NEW_VERSION="${major}.${minor}.${patch}"
cargo set-version "$NEW_VERSION"
VERSION=v$NEW_VERSION
echo "🛠️ Set version $VERSION"
echo