| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | current_version="$(git tag -l | head -n 1 | sed 's/^v//')" |
| 6 | [[ -z "$current_version" ]] && current_version=0.0.0 |
| 7 | echo -e "\033[35mCurrently on version $current_version\033[0m" |
| 8 | |
| 9 | IFS='.' read -r major minor patch <<<"$current_version" |
| 10 | |
| 11 | case "$1" in |
| 12 | same) echo -e "\033[34mKeeping the same version\033[0m" ;; |
| 13 | major) major=$((major + 1)) && minor=0 && patch=0 ;; |
| 14 | minor) minor=$((minor + 1)) && patch=$((patch + 1)) ;; |
| 15 | *) patch=$((patch + 1)) ;; |
| 16 | esac |
| 17 | |
| 18 | new_version="$major.$minor.$patch" |
| 19 | |
| 20 | echo -e "\033[32mUpdating version $new_version\033[0m" |
| 21 | |
| 22 | printf "\033[37m(y/n) Would you like to continue? Defaults to y: \033[0m" |
| 23 | read -rp "" yn |
| 24 | { [[ "$yn" == "y" ]] || [[ -z "$yn" ]]; } || { echo -e "\033[31mAborting...\033[0m" && exit 0; } |
| 25 | |
| 26 | find . -name Cargo.toml -exec sed -i "s/^version.*/version = \"$new_version\"/" {} \; |
| 27 | find . -name Cargo.toml -exec git add {} \; |
| 28 | find . -name package.json -exec sed -i "s/\"version\".*/\"version\": \"$new_version\"/" {} \; |
| 29 | find . -name package.json -exec git add {} \; |
| 30 | |
| 31 | echo -e "\033[37mUpdated relevant files. Create new commit\033[0m" |
| 32 | git commit -m "version tag" |
| 33 | |
| 34 | echo -e "\033[37mCompleted commit. Create new tag\033[0m" |
| 35 | git tag -f -a "v$new_version" |