start with pms conform sorting implementation

This commit is contained in:
fabolous005 2024-10-16 23:15:31 +02:00
parent dd5bd1ae71
commit 34059edcf7
2 changed files with 45 additions and 0 deletions

30
sorting.sh Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env bash
# regex to match any ebuild https://projects.gentoo.org/pms/8/pms.html
# [0-9]+(\.[0-9]+)+([a-z])?(_alpha|_beta|_pre|_rc|_p)?([a-z])?(-r([0-9]))?.ebuild
function pms_sort() {
(( $# < 2 )) && if [[ -n "$1" ]]; then
echo "$1"
return 0
else
ewarn "No version for sorting provided" "\n"
return 2
fi
local latest=""
local args=""
args=("${@:1}")
for (( i = 1; i < $#; i++ )); do
latest="$(pms_inner_sort "${args[$i]}" "${latest:-${args[$((i - 1))]}}")"
echo "comparing: $((i - 1)) and $i" >> ./test
echo -e "args[0] = ${args[0]} and args[1] = ${args[1]} and args[2] = ${args[2]}\n" >> ./test
done
echo "$latest"
}
function pms_inner_sort() {
echo "first: $1" >> ./test
echo "second: $2" >> ./test
echo "$1"
}

15
test Normal file
View File

@ -0,0 +1,15 @@
first: 0.12.4
second: 12.23.34_dev-r43
comparing: 0 and 1
args[0] = 12.23.34_dev-r43 and args[1] = 0.12.4 and args[2] =
first: 0.12.4
second: 12.23.34_dev-r43
comparing: 0 and 1
args[0] = 12.23.34_dev-r43 and args[1] = 0.12.4 and args[2] = 234.34.76-r6
first: 234.34.76-r6
second: 0.12.4
comparing: 1 and 2
args[0] = 12.23.34_dev-r43 and args[1] = 0.12.4 and args[2] = 234.34.76-r6