From 2080c0679ac7cd59259e6dfaf4e86a8a7316ddf4 Mon Sep 17 00:00:00 2001 From: belliash Date: Sat, 31 Dec 2011 11:59:56 +0100 Subject: [PATCH] implement checkVersion() --- libraries/common | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/libraries/common b/libraries/common index d2f8919..77c01e7 100644 --- a/libraries/common +++ b/libraries/common @@ -3,6 +3,37 @@ # Distributed under the terms of the GNU General Public License v3 +#------------------------------------------------------------------------------- +# Tests for a minimum version level by comparing version numbers +# Parameters: %min_version% %test_version% +#------------------------------------------------------------------------------- +function checkVersion() { + local REF="${1}" + local TST="${2}" + saveIFS ".-(pa" + set -- ${REF} + local REF_MAJOR=${1} + local REF_MINOR=${2} + local REF_PATCH=${3} + set -- ${TST} + local TST_MAJOR=${1} + local TST_MINOR=${2} + local TST_PATCH=${3} + restoreIFS + if [[ ${TST_MAJOR} -gt ${REF_MAJOR} ]]; then + return 0 + elif [[ ${TST_MAJOR} -eq ${REF_MAJOR} ]]; then + if [[ ${TST_MINOR} -gt ${REF_MINOR} ]]; then + return 0 + elif [[ ${TST_MINOR} -eq ${REF_MINOR} ]]; then + if [[ ${TST_PATCH} -ge ${REF_PATCH} ]]; then + return 0 + fi + fi + fi + return 1 +} + #------------------------------------------------------------------------------- # Outputs formatted error message and aborts script execution with given code # Parameters: %message% %code%