Skip to content

Commit c22a2d8

Browse files
committed
Fix failure to sort properly with prefix, sort double numbers.
1 parent 7725e8f commit c22a2d8

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

git-semver.sh

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,17 +172,22 @@ version-parse-pre-release() {
172172
version-get() {
173173
local sort_args version version_pre_releases pre_release_id_count pre_release_id_index
174174
local tags=$(git tag)
175+
local sorted_tags=$(
176+
echo "$tags" |
177+
grep -oP "^${VERSION_PREFIX}\K[0-9]+\.[0-9]+\.[0-9]+.*" |
178+
awk -F '[-+]' '{ print $1 }' |
179+
uniq |
180+
sort -t '.' -k 1,1n -k 2,2n -k 3,3n |
181+
awk -v VERSION_PREFIX="${VERSION_PREFIX}" '{print VERSION_PREFIX $1}'
182+
)
183+
175184
local version_pre_release=$(
176185
local version_main=$(
177-
echo "$tags" |
178-
grep "^${VERSION_PREFIX}[0-9]\+\.[0-9]\+\.[0-9]\+" |
179-
awk -F '[-+]' '{ print $1 }' |
180-
uniq |
181-
sort -t '.' -k 1,1n -k 2,2n -k 3,3n |
186+
echo "$sorted_tags" |
182187
tail -n 1
183188
)
184189
local version_pre_releases=$(
185-
echo "$tags" |
190+
echo "$sorted_tags" |
186191
grep "^${version_main//./\\.}" |
187192
awk -F '-' '{ print $2 }'
188193
)
@@ -210,7 +215,7 @@ version-get() {
210215
tail -n 1
211216
)
212217
# Get the version with the build number
213-
version=$(echo "$tags" | grep "^${version_pre_release//./\\.}" | tail -n 1)
218+
version=$(echo "$sorted_tags" | grep "^${version_pre_release//./\\.}" | tail -n 1)
214219
if [ "" == "${version}" ]
215220
then
216221
return 1

0 commit comments

Comments
 (0)