bump.sh

795 B · shellscript · 22 lines

1#!/usr/bin/env bash23set -euo pipefail45HERE="$(cd "$(dirname "$0")" && pwd)"6SOURCE="$HERE/../pkgs/mrlyrs/Cargo.toml"7USAGE="usage: bump.sh <patch|minor|major|X.Y.Z>"89[ $# -eq 1 ] || { echo "$USAGE" >&2; exit 1; }10old="$(sed -n 's/^version = "\(.*\)"$/\1/p' "$SOURCE" | head -1)"11IFS=. read -r major minor patch <<< "$old"12case "$1" in13  patch) new="$major.$minor.$((patch + 1))" ;;14  minor) new="$major.$((minor + 1)).0" ;;15  major) new="$((major + 1)).0.0" ;;16  *) [[ "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "$USAGE" >&2; exit 1; }; new="$1" ;;17esac1819text="$(awk -v new="$new" '!done && /^version = "/ { print "version = \"" new "\""; done = 1; next } { print }' "$SOURCE")"20printf '%s\n' "$text" > "$SOURCE"21"$HERE/bridge.sh" > /dev/null22echo "mrlyrs, mrlypy and mrlyjs $old -> $new"