mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2025-12-11 18:46:02 +00:00
version sorting works
This commit is contained in:
@@ -12,17 +12,30 @@ function qsort($ary, $fn) {
|
|||||||
return @() + $lesser + @($pivot) + $greater
|
return @() + $lesser + @($pivot) + $greater
|
||||||
}
|
}
|
||||||
|
|
||||||
function comp_ver($a, $b) {
|
function version($ver) {
|
||||||
if($a -lt $b) { return -1 }
|
$ver.split('.') | % {
|
||||||
if($a -gt $b) { return 1 }
|
$num = $_ -as [int]
|
||||||
|
if($num) { $num } else { $_ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function compare_versions($a, $b) {
|
||||||
|
$ver_a = version $a
|
||||||
|
$ver_b = version $b
|
||||||
|
|
||||||
|
for($i=0;$i -lt $ver_a.length;$i++) {
|
||||||
|
if($i -gt $ver_b.length) { return 1; }
|
||||||
|
if($ver_a[$i] -gt $ver_b[$i]) { return 1; }
|
||||||
|
if($ver_a[$i] -lt $ver_b[$i]) { return -1; }
|
||||||
|
}
|
||||||
|
if($ver_b.length -gt $ver_a.length) { return -1 }
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$test = "10.1.1,4.2.4,4.2.25,4.2,10.1.1.r0-preview,10.1.1.r2-final".split(',')
|
||||||
|
|
||||||
#comp_ver 'a', 1
|
#split_version '10.1.r0-preview'
|
||||||
$test = "fred,1,6,2,7,9,12,89,45,12,65,1,12,amy".split(',')
|
compare_versions '4.2.4' '4.2.4.25'
|
||||||
|
$sorted = qsort $test compare_versions
|
||||||
#$test = "fred,1,6".split(',')
|
|
||||||
$sorted = qsort $test comp_ver
|
|
||||||
$sorted |% { write-host "'$_'," -no }
|
$sorted |% { write-host "'$_'," -no }
|
||||||
write-host ""
|
write-host ""
|
||||||
Reference in New Issue
Block a user