#!/usr/bin/env bash set -euo pipefail parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" || exit ; pwd -P ) cd "$parent_path" || exit if [ 1 -eq "$#" ] then current_version=$(grep -m 1 '^version = ' barker/pyproject.toml | sed -E 's/version = "([^"]+)"/\1/') IFS='.' read -r major minor patch <<< "$current_version" if [ "$1" == "major" ]; then major=$((major + 1)) minor=0 patch=0 new_version="${major}.${minor}.${patch}" elif [ "$1" == "minor" ]; then minor=$((minor + 1)) patch=0 new_version="${major}.${minor}.${patch}" elif [ "$1" == "patch" ]; then patch=$((patch + 1)) new_version="${major}.${minor}.${patch}" elif [[ "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then new_version="$1" else echo "Invalid argument: must be 'major', 'minor', 'patch', or a specific version (e.g. 1.2.3)" exit 1 fi echo "Version bump from $current_version to $new_version" sed --in-place --regexp-extended 's/"([0-9]{1,2}.[0-9]+.[0-9]+)"/"'"$new_version"'"/g' barker/barker/__version__.py git add barker/barker/__version__.py sed --in-place --regexp-extended 's/version = "([0-9]{1,2}.[0-9]+.[0-9]+)"/version = "'"$new_version"'"/g' barker/pyproject.toml git add barker/pyproject.toml sed --in-place --regexp-extended 's/version = "([0-9]{1,2}.[0-9]+.[0-9]+)"/version = "'"$new_version"'"/g' frank/pyproject.toml git add frank/pyproject.toml sed --in-place --regexp-extended 's/version: '\''([0-9]*.[0-9]+.[0-9]+)'\''/version: '\'"$new_version"\''/g' bookie/src/app/app.environment.ts git add bookie/src/app/app.environment.ts sed --in-place --regexp-extended 's/"version": "([0-9]{1,2}.[0-9]+.[0-9]+)"/"version": "'"$new_version"'"/g' bookie/package.json git add bookie/package.json git commit -m "Version Bump v$new_version" git tag "v$new_version" else echo "No version bump" echo "Usage: $0 " exit 1 fi git push --tags