import KV_to_int and friends since a few eclasses still want it ...
authorMike Frysinger <vapier@gentoo.org>
Thu, 15 Dec 2011 00:12:46 +0000 (00:12 +0000)
committerMike Frysinger <vapier@gentoo.org>
Thu, 15 Dec 2011 00:12:46 +0000 (00:12 +0000)
eclass/tests/tests-common.sh

index 4de0f7bac46b95669179f6e8438e11d037bb385a..5413d7ec4cdbe13a971177a73f3823350b6b8fe8 100644 (file)
@@ -46,3 +46,44 @@ die() {
 has_version() {
        portageq has_version / "$@"
 }
+
+KV_major() {
+       [[ -z $1 ]] && return 1
+
+       local KV=$@
+       echo "${KV%%.*}"
+}
+
+KV_minor() {
+       [[ -z $1 ]] && return 1
+
+       local KV=$@
+       KV=${KV#*.}
+       echo "${KV%%.*}"
+}
+
+KV_micro() {
+       [[ -z $1 ]] && return 1
+
+       local KV=$@
+       KV=${KV#*.*.}
+       echo "${KV%%[^[:digit:]]*}"
+}
+
+KV_to_int() {
+       [[ -z $1 ]] && return 1
+
+       local KV_MAJOR=$(KV_major "$1")
+       local KV_MINOR=$(KV_minor "$1")
+       local KV_MICRO=$(KV_micro "$1")
+       local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
+
+       # We make version 2.2.0 the minimum version we will handle as
+       # a sanity check ... if its less, we fail ...
+       if [[ ${KV_int} -ge 131584 ]] ; then
+               echo "${KV_int}"
+               return 0
+       fi
+
+       return 1
+}