28 lines
869 B
Bash
28 lines
869 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -o nounset # disallow usage of unset vars ( set -u )
|
||
|
set -o errexit # Exit immediately if a pipeline returns non-zero. ( set -e )
|
||
|
set -o errtrace # Allow the above trap be inherited by all functions in the script. ( set -E )
|
||
|
set -o pipefail # Return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status
|
||
|
IFS=$'\n\t' # Set $IFS to only newline and tab.
|
||
|
|
||
|
|
||
|
curr_vers=$(git describe --tags --abbrev=0 | sed 's/v//g')
|
||
|
|
||
|
next_ver=$(echo "$curr_vers" | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{if(length($NF+1)>length($NF))$(NF-1)++; $NF=sprintf("%0*d", length($NF), ($NF+1)%(10^length($NF))); print}')
|
||
|
|
||
|
echo ""
|
||
|
echo "> Current Version: ${curr_vers}"
|
||
|
echo "> Next Version: ${next_ver}"
|
||
|
echo ""
|
||
|
|
||
|
git add --verbose .
|
||
|
|
||
|
git commit -a -m "v${next_ver}"
|
||
|
|
||
|
git tag "v${next_ver}"
|
||
|
|
||
|
git push
|
||
|
git push --tags
|
||
|
|