diff options
Diffstat (limited to 'sys-fs/udev/files/151-r4/shell-compat-KV.sh')
-rw-r--r-- | sys-fs/udev/files/151-r4/shell-compat-KV.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/sys-fs/udev/files/151-r4/shell-compat-KV.sh b/sys-fs/udev/files/151-r4/shell-compat-KV.sh new file mode 100644 index 000000000000..be74fe49e3d6 --- /dev/null +++ b/sys-fs/udev/files/151-r4/shell-compat-KV.sh @@ -0,0 +1,45 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# provides get_KV and KV_to_int as not all openrc-versions installed via ebuild have these + +cmd_exist() +{ + type "$1" >/dev/null 2>&1 +} + +# does exist in baselayout-1 +# does not exist in openrc, but is added by openrc-ebuild since some time +if ! cmd_exist KV_to_int; then + KV_to_int() { + [ -z $1 ] && return 1 + + local x=${1%%-*} + local KV_MAJOR=${x%%.*} + x=${x#*.} + local KV_MINOR=${x%%.*} + x=${x#*.} + local KV_MICRO=${x%%.*} + 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 ... + [ "${KV_int}" -lt 131584 ] && return 1 + + echo "${KV_int}" + } +fi + +# same as KV_to_int +if ! cmd_exist get_KV; then + _RC_GET_KV_CACHE="" + get_KV() { + [ -z "${_RC_GET_KV_CACHE}" ] \ + && _RC_GET_KV_CACHE="$(uname -r)" + + echo "$(KV_to_int "${_RC_GET_KV_CACHE}")" + + return $? + } +fi + |