#!/bin/bash set -e # Only run at the codebase root. [ -e .git ] # Don't run with uncommited or staged changes. git diff --exit-code git diff --cached --exit-code NEW_VERSION=$(date "+v%Y.%m.%d") CURRENT_VERSION=$(git describe --tags --abbrev=0) if [ $NEW_VERSION == $CURRENT_VERSION ]; then git tag --delete $CURRENT_VERSION git push --delete origin $CURRENT_VERSION else git grep --no-color -l $CURRENT_VERSION | xargs sed -i "s/$CURRENT_VERSION/$NEW_VERSION/g" uv lock git commit --all --message="Update version to $NEW_VERSION" fi git tag $NEW_VERSION git push git push --tags echo "Done."