File tree Expand file tree Collapse file tree 1 file changed +11
-18
lines changed
Expand file tree Collapse file tree 1 file changed +11
-18
lines changed Original file line number Diff line number Diff line change @@ -205,26 +205,19 @@ utils:compare_versions() {
205205 local ver_left=" ${1?} "
206206 local operator=" ${2?} "
207207 local ver_right=" ${3?} "
208+ local sorted lowest highest
209+
210+ mapfile -t sorted < <( printf ' %s\n%s' " $ver_left " " $ver_right " | sort -V)
211+ lowest=" ${sorted[0]} "
212+ highest=" ${sorted[1]} "
208213
209214 case " $operator " in
210- lt)
211- [[ " $ver_left " < " $ver_right " ]]
212- ;;
213- gt)
214- [[ " $ver_left " > " $ver_right " ]]
215- ;;
216- eq)
217- [[ " $ver_left " == " $ver_right " ]]
218- ;;
219- ne)
220- [[ " $ver_left " != " $ver_right " ]]
221- ;;
222- le)
223- [[ " $ver_left " < " $ver_right " ]] || [[ " $ver_left " == " $ver_right " ]]
224- ;;
225- ge)
226- [[ " $ver_left " > " $ver_right " ]] || [[ " $ver_left " == " $ver_right " ]]
227- ;;
215+ lt) [[ " $ver_left " == " $lowest " && " $ver_left " != " $ver_right " ]] ;;
216+ gt) [[ " $ver_left " == " $highest " && " $ver_left " != " $ver_right " ]] ;;
217+ eq) [[ " $ver_left " == " $ver_right " ]] ;;
218+ ne) [[ " $ver_left " != " $ver_right " ]] ;;
219+ le) [[ " $ver_left " == " $lowest " ]] ;;
220+ ge) [[ " $ver_left " == " $highest " ]] ;;
228221 * )
229222 echo " usage: ${FUNCNAME[0]} ver1 lt|le|gt|ge|eq|ne ver2" >&2
230223 exit 1
You can’t perform that action at this time.
0 commit comments