#!/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 $* { has $x $EBUILD_DEATH_HOOKS || \ export EBUILD_DEATH_HOOKS="$EBUILD_DEATH_HOOKS $x" } } proc register_success_hook { local x for x in $* { has $x $EBUILD_SUCCESS_HOOKS || \ export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x" } } proc __strip_duplicate_slashes { if [[ -n $1 ]] { local removed=$1 { setvar removed = ${removed//\/\///} } echo ${removed} } } proc KV_major { [[ -z $1 ]] && return 1 local KV=$[join(ARGV)] echo ${KV%%.*} } proc KV_minor { [[ -z $1 ]] && return 1 local KV=$[join(ARGV)] setvar KV = ${KV#*.} echo ${KV%%.*} } proc KV_micro { [[ -z $1 ]] && return 1 local KV=$[join(ARGV)] setvar 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=$(( 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 } setvar _RC_GET_KV_CACHE = """" proc get_KV { [[ -z ${_RC_GET_KV_CACHE} ]] \ && setvar _RC_GET_KV_CACHE = $(uname -r) echo $(KV_to_int "${_RC_GET_KV_CACHE}") return $? }