37 lines
917 B
Bash
Executable File
37 lines
917 B
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
|
|
BOLD=$(tput bold)
|
|
NORMAL=$(tput sgr0)
|
|
|
|
echo "${BOLD}Tagging${NORMAL}"
|
|
|
|
#get highest tag number
|
|
VERSION=`git describe --abbrev=0 --tags`
|
|
|
|
#replace . with space so can split into an array
|
|
VERSION_BITS=(${VERSION//./ })
|
|
|
|
#get number parts and increase last one by 1
|
|
VNUM1=${VERSION_BITS[0]}
|
|
VNUM2=${VERSION_BITS[1]}
|
|
VNUM3=${VERSION_BITS[2]}
|
|
VNUM3=$((VNUM3+1))
|
|
|
|
#create new tag
|
|
NEW_TAG="$VNUM1.$VNUM2.$VNUM3"
|
|
|
|
echo "Updating $VERSION to $NEW_TAG"
|
|
|
|
#get current hash and see if it already has a tag
|
|
GIT_COMMIT=`git rev-parse HEAD`
|
|
NEEDS_TAG=`git describe --contains $GIT_COMMIT`
|
|
|
|
#only tag if no tag already (would be better if the git describe command above could have a silent option)
|
|
if [ -z "$NEEDS_TAG" ]; then
|
|
echo "Tagged with $NEW_TAG (Ignoring fatal:cannot describe - this means commit is untagged) "
|
|
git tag $NEW_TAG
|
|
git push --tags
|
|
else
|
|
echo "Already a tag on this commit"
|
|
fi |