#!/bin/bash -e usage() { cat <&2 } MAJOR=0 MINOR=0 PATCH=0 SPECIAL="" semverParseInto "$(readCargoVersion ./Cargo.toml)" MAJOR MINOR PATCH SPECIAL [[ -n $MAJOR ]] || usage currentVersion="$MAJOR.$MINOR.$PATCH" case ${1:-minor} in patch) PATCH=$((PATCH + 1)) ;; major) MAJOR=$((MAJOR+ 1)) ;; minor) MINOR=$((MINOR+ 1)) ;; *) echo "Error: unknown argument: $1" usage ;; esac newVersion="$MAJOR.$MINOR.$PATCH" for Cargo_toml in {,common/}Cargo.toml; do ( set -x sed -i $Cargo_toml -e "s/^version = \"$currentVersion\"$/version = \"$newVersion\"/" ) done echo "$currentVersion -> $newVersion" exit 0