blob: 2155eace17bcb3c69c17f45202a7b51d23331c2e [file] [edit]
#!/bin/bash
# See usage() for usage
source "$(dirname -- "$0";)/rel-common.sh"
# Helpers
function usage() {
echo "Usage: ./bump-version.sh crate1 crate2 crateN bump"
echo " ./bump-version.sh read-fonts write-fonts patch"
echo " ./bump-version.sh {read,write}-fonts patch"
echo "bump is as defined by cargo release: major minor or patch"
}
# What is it you want us to do?
if [ $# -eq 0 ]; then
die_with_usage "No arguments provided, must specify crate(s)"
fi
# bump is the last argument, crate list is everything else
bump="${@:$#}"
set -- "${@:1:$(($#-1))}"
crates=("$@")
# Validate
[[ "$bump" =~ ^(major|minor|patch)$ ]] || die_with_usage "Invalid bump, must be major, minor, or patch"
validate_crates "${crates[@]}"
# Do the thing. We set errexit so step failure should break us out.
for crate in "${crates[@]}"
do
cargo release version "${bump}" -p "${crate}" -x
done
echo "NEXT STEPS"
echo "Commit these changes to a new branch, get it approved and merged, and switch to the up-to-date main."