| #!/bin/bash |
| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| portageq() { |
| PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}}\ |
| "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" "$@" |
| } |
| |
| register_die_hook() { |
| local x |
| for x in $* ; do |
| has $x $EBUILD_DEATH_HOOKS || \ |
| export EBUILD_DEATH_HOOKS="$EBUILD_DEATH_HOOKS $x" |
| done |
| } |
| |
| register_success_hook() { |
| local x |
| for x in $* ; do |
| has $x $EBUILD_SUCCESS_HOOKS || \ |
| export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x" |
| done |
| } |
| |
| __strip_duplicate_slashes() { |
| if [[ -n $1 ]] ; then |
| local removed=$1 |
| while [[ ${removed} == *//* ]] ; do |
| removed=${removed//\/\///} |
| done |
| echo "${removed}" |
| fi |
| } |
| |
| 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 |
| } |
| |
| _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 $? |
| } |