mirror of
https://github.com/Dasharo/dts-scripts.git
synced 2026-06-13 19:16:21 -07:00
dts-functions: add semver_version_compare to compare versions
Can be used to check whether a is '<' '==' or '>' Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
This commit is contained in:
+19
-10
@@ -714,16 +714,30 @@ check_flash_chip() {
|
||||
}
|
||||
|
||||
compare_versions() {
|
||||
# compare_versions ver1 ver2
|
||||
# return 1 if ver2 > ver1
|
||||
# return 0 otherwise
|
||||
local ver1=
|
||||
local ver2=
|
||||
local ver1="$1"
|
||||
local ver2="$2"
|
||||
|
||||
if [ "$(semver_version_compare "$1" "$2")" -eq -1 ]; then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
semver_version_compare() {
|
||||
# semver_version_compare ver1 ver2
|
||||
# echo 0 if ver1 == ver2, 1 if ver1 > ver2 and -1 if ver1 < ver2
|
||||
local ver1="$1"
|
||||
local ver2="$2"
|
||||
local compare=
|
||||
# convert version ending with '-rc<x>' to '-rc.<x>' where <x> is number
|
||||
# as semantic versioning compares whole 'rc<x>' as alphanumeric identifier
|
||||
# which results in rc2 > rc12. More information at https://semver.org/
|
||||
ver1=$(sed -r "s/-rc([0-9]+)$/-rc.\1/" <<<"$1")
|
||||
ver2=$(sed -r "s/-rc([0-9]+)$/-rc.\1/" <<<"$2")
|
||||
ver1=$(sed -r "s/-rc([0-9]+)$/-rc.\1/" <<<"$ver1")
|
||||
ver2=$(sed -r "s/-rc([0-9]+)$/-rc.\1/" <<<"$ver2")
|
||||
|
||||
# convert SeaBIOS versioning x.x.x.x to x.x.x-x so it can be used with semver
|
||||
# checker. Also remove leading zeroes as it's not allowed in semver
|
||||
@@ -736,12 +750,7 @@ compare_versions() {
|
||||
if ! python3 -m semver check "$ver1" || ! python3 -m semver check "$ver2"; then
|
||||
error_exit "Incorrect version format"
|
||||
fi
|
||||
compare=$(python3 -m semver compare "$ver1" "$ver2")
|
||||
if [ "$compare" -eq -1 ]; then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
python3 -m semver compare "$ver1" "$ver2"
|
||||
}
|
||||
|
||||
download_bios() {
|
||||
|
||||
Reference in New Issue
Block a user