From 49cde3f820aeb9d19b1cff371ed9bf52cd655548 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 16 Feb 2022 15:34:03 -0500 Subject: [PATCH] added https://github.com/markchalloner/git-semver/pull/46 --- git-semver.sh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/git-semver.sh b/git-semver.sh index 51cbfc6..0ed06a7 100755 --- a/git-semver.sh +++ b/git-semver.sh @@ -172,17 +172,22 @@ version-parse-pre-release() { version-get() { local sort_args version version_pre_releases pre_release_id_count pre_release_id_index local tags=$(git tag) + local sorted_tags=$( + echo "$tags" | + grep -oP "^${VERSION_PREFIX}\K[0-9]+\.[0-9]+\.[0-9]+.*" | + awk -F '[-+]' '{ print $1 }' | + uniq | + sort -t '.' -k 1,1n -k 2,2n -k 3,3n | + awk -v VERSION_PREFIX="${VERSION_PREFIX}" '{print VERSION_PREFIX $1}' + ) + local version_pre_release=$( local version_main=$( - echo "$tags" | - grep "^${VERSION_PREFIX}[0-9]\+\.[0-9]\+\.[0-9]\+" | - awk -F '[-+]' '{ print $1 }' | - uniq | - sort -t '.' -k 1,1n -k 2,2n -k 3,3n | + echo "$sorted_tags" | tail -n 1 ) local version_pre_releases=$( - echo "$tags" | + echo "$sorted_tags" | grep "^${version_main//./\\.}" | awk -F '-' '{ print $2 }' ) @@ -210,7 +215,7 @@ version-get() { tail -n 1 ) # Get the version with the build number - version=$(echo "$tags" | grep "^${version_pre_release//./\\.}" | tail -n 1) + version=$(echo "$sorted_tags" | grep "^${version_pre_release//./\\.}" | tail -n 1) if [ "" == "${version}" ] then return 1 @@ -428,4 +433,4 @@ case "$action" in *) usage ;; -esac +esac \ No newline at end of file