summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion')
-rw-r--r--fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion95
1 files changed, 95 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion b/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion
new file mode 100644
index 000000000..0ee0f577e
--- /dev/null
+++ b/fluent-bit/lib/librdkafka-2.1.0/mklove/modules/configure.parseversion
@@ -0,0 +1,95 @@
+#!/bin/bash
+#
+# Parses the provided version string and creates variables accordingly.
+# [ "hex2str" <fmt> ] -- version-string is in hex (e.g., 0x00080300)
+# version-string
+# STR_VERSION_VARIABLE_NAME
+# [ HEX_VERSION_VARIABLE_NAME ]
+#
+# Note: The version will also be set in MKL_APP_VERSION
+#
+# Example: Set string version in variable named "MYVERSION_STR" and
+# the hex representation in "MYVERSION"
+# mkl_require parseversion "$(head -1 VERSION.txt)" MYVERSION_STR MYVERSION
+
+if [[ $1 == "hex2str" ]]; then
+ parseversion_type="hex"
+ parseversion_fmt="${2}:END:%d%d%d%d"
+ shift
+ shift
+else
+ parseversion_type=""
+ parseversion_fmt="%d.%d.%d.%d"
+fi
+
+if [[ -z "$2" ]]; then
+ mkl_fail "parseversion" "none" "fail" "Missing argument(s)"
+ return 0
+fi
+
+parseversion_orig="$1"
+parseversion_strvar="$2"
+parseversion_hexvar="$3"
+
+function checks {
+ mkl_check_begin --verb "parsing" "parseversion" "" "no-cache" \
+ "version '$parseversion_orig'"
+
+ # Strip v prefix if any
+ orig=${parseversion_orig#v}
+
+ if [[ $orig == 0x* ]]; then
+ parseversion_type="hex"
+ orig=${orig#0x}
+ fi
+
+ if [[ -z $orig ]]; then
+ mkl_check_failed "parseversion" "" "fail" "Version string is empty"
+ return 1
+ fi
+
+ # If orig is in hex we construct a string format instead.
+ if [[ $parseversion_type == "hex" ]]; then
+ local s=$orig
+ local str=""
+ local vals=""
+ while [[ ! -z $s ]]; do
+ local n=${s:0:2}
+ s=${s:${#n}}
+ vals="${vals}$(printf %d 0x$n) "
+ done
+ str=$(printf "$parseversion_fmt" $vals)
+ orig=${str%:END:*}
+ fi
+
+
+ # Try to decode version string into hex
+ # Supported format is "[v]NN.NN.NN[.NN]"
+ if [[ ! -z $parseversion_hexvar ]]; then
+ local hex=""
+ local s=$orig
+ local ncnt=0
+ local n=
+ for n in ${s//./ } ; do
+ if [[ ! ( "$n" =~ ^[0-9][0-9]?$ ) ]]; then
+ mkl_check_failed "parseversion" "" "fail" \
+ "Could not decode '$parseversion_orig' into hex version, expecting format 'NN.NN.NN[.NN]'"
+ return 1
+ fi
+ hex="$hex$(printf %02x $n)"
+ ncnt=$(expr $ncnt + 1)
+ done
+
+ if [[ ! -z $hex ]]; then
+ # Finish all four bytess
+ while [[ ${#hex} -lt 8 ]]; do
+ hex="$hex$(printf %02x 0)"
+ done
+ mkl_allvar_set "parseversion" "$parseversion_hexvar" "0x$hex"
+ fi
+ fi
+
+ mkl_allvar_set "parseversion" "$parseversion_strvar" "$orig"
+ mkl_allvar_set "parseversion" MKL_APP_VERSION "$orig"
+ mkl_check_done "parseversion" "" "cont" "ok" "${!parseversion_strvar}"
+}