#!/bin/bash # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 proc register_die_hook { local x for x in [$ifsjoin(Argv)] { has $x $EBUILD_DEATH_HOOKS || \ export EBUILD_DEATH_HOOKS="$EBUILD_DEATH_HOOKS $x" } } proc register_success_hook { local x for x in [$ifsjoin(Argv)] { has $x $EBUILD_SUCCESS_HOOKS || \ export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x" } } proc __strip_duplicate_slashes { if [[ -n $1 ]] { local removed=$1 { setglobal removed = $(removed//\/\///) } echo $(removed) } } proc KV_major { [[ -z $1 ]] && return 1 local KV=$ifsjoin(Argv) echo $(KV%%.*) } proc KV_minor { [[ -z $1 ]] && return 1 local KV=$ifsjoin(Argv) setglobal KV = $(KV#*.) echo $(KV%%.*) } proc KV_micro { [[ -z $1 ]] && return 1 local KV=$ifsjoin(Argv) setglobal KV = $(KV#*.*.) echo $(KV%%[^[:digit:]]*) } proc 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=$shExpr(' 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 ]] { echo $(KV_int) return 0 } return 1 } setglobal _RC_GET_KV_CACHE = ''"" proc get_KV { [[ -z ${_RC_GET_KV_CACHE} ]] \ && setglobal _RC_GET_KV_CACHE = $[uname -r] echo $[KV_to_int $(_RC_GET_KV_CACHE)] return $? }