On [/system resource get version] is not indicated the build-time
On [/ip neighbor] version is all together like "7.7 (stable) Jan/12/2023 07:35:45"
This function convert version from system or from neigbot to one array and keep same info (major, minor, patch, channel, build-time) on same position.
:global version2arr do={
:local ver [:tostr $1]
:local pos 0
:local major "" ; :local minor ""; :local patch "" ; :local chnnl "" ; :local build "" ; :local btime ""
:set pos [:find $ver "." -1]
:set major [:pick $ver 0 $pos]
:set ver [:pick $ver ($pos + 1) [:len $ver]]
:if ([:typeof [:find $ver "." -1]] != "nil") do={
:set pos [:find $ver "." -1]
:set minor [:pick $ver 0 $pos]
:set ver [:pick $ver ($pos + 1) [:len $ver]]
}
:if ([:typeof [:find $ver " " -1]] != "nil") do={
:set pos [:find $ver " " -1]
:if ($minor = "") do={
:set minor [:pick $ver 0 $pos]
} else={
:set patch [:pick $ver 0 $pos]
}
:set ver [:pick $ver ($pos + 1) [:len $ver]]
}
:if ([:typeof [:find $ver "(" -1]] != "nil") do={
:set pos [:find $ver ")" -1]
:set chnnl [:pick $ver 1 $pos]
:set ver [:pick $ver ($pos + 1) [:len $ver]]
}
:if ($ver ~ "^ ") do={
:set btime [:pick $ver 1 [:len $ver]]
} else={
:set btime $ver
}
:return ($major,$minor,$patch,$chnnl,$btime)
}
[] > :put [$version2arr [/system resource get version]]
6;48;6;long-term
[] > :put [$version2arr [/system resource get version]]
7;7;;stable
[] > :put [$version2arr "7.7 (stable) Jan/12/2023 07:35:45"]
7;7;;stable;Jan/12/2023 07:35:45
[] > :put [$version2arr "7.10beta5 (development) 2023-05-03 14:33:19"]
7;10beta5;;development;2023-05-03 14:33:19
About development versions, the minor version is 10beta5, but some subsequents division is possible, but for me is excessive.