Signed-off-by: Michał Górny <mgo...@gentoo.org>
---
 eclass/bash-completion-r1.eclass | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/eclass/bash-completion-r1.eclass b/eclass/bash-completion-r1.eclass
index 80f2d5fcd32a..58c1debf334e 100644
--- a/eclass/bash-completion-r1.eclass
+++ b/eclass/bash-completion-r1.eclass
@@ -1,138 +1,143 @@
 # Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: bash-completion-r1.eclass
 # @MAINTAINER:
 # mgo...@gentoo.org
-# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
+# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7 8
 # @BLURB: A few quick functions to install bash-completion files
 # @EXAMPLE:
 #
 # @CODE
-# EAPI=5
+# EAPI=8
 #
 # src_configure() {
 #      econf \
 #              --with-bash-completion-dir="$(get_bashcompdir)"
 # }
 #
 # src_install() {
 #      default
 #
 #      newbashcomp contrib/${PN}.bash-completion ${PN}
 # }
 # @CODE
 
+if [[ ! ${_BASH_COMPLETION_R1} ]]; then
+
 inherit toolchain-funcs
 
 case ${EAPI:-0} in
-       0|1|2|3|4|5|6|7) ;;
-       *) die "EAPI ${EAPI} unsupported (yet)."
+       [5-8]) ;;
+       *) die "EAPI ${EAPI} unsupported."
 esac
 
 # @FUNCTION: _bash-completion-r1_get_bashdir
 # @INTERNAL
 # @DESCRIPTION:
 # First argument is name of the string in bash-completion.pc
 # Second argument is the fallback directory if the string is not found
 # @EXAMPLE:
 # _bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion
 _bash-completion-r1_get_bashdir() {
        debug-print-function ${FUNCNAME} "${@}"
 
        if $(tc-getPKG_CONFIG) --exists bash-completion &>/dev/null; then
                local path
                path=$($(tc-getPKG_CONFIG) --variable="${1}" bash-completion) 
|| die
                # we need to return unprefixed, so strip from what pkg-config 
returns
                # to us, bug #477692
                echo "${path#${EPREFIX}}"
        else
                echo "${2}"
        fi
 }
 
 # @FUNCTION: _bash-completion-r1_get_bashcompdir
 # @INTERNAL
 # @DESCRIPTION:
 # Get unprefixed bash-completion completions directory.
 _bash-completion-r1_get_bashcompdir() {
        debug-print-function ${FUNCNAME} "${@}"
 
        _bash-completion-r1_get_bashdir completionsdir 
/usr/share/bash-completion/completions
 }
 
 # @FUNCTION: _bash-completion-r1_get_helpersdir
 # @INTERNAL
 # @DESCRIPTION:
 # Get unprefixed bash-completion helpers directory.
 _bash-completion-r1_get_bashhelpersdir() {
        debug-print-function ${FUNCNAME} "${@}"
 
        _bash-completion-r1_get_bashdir helpersdir 
/usr/share/bash-completion/helpers
 }
 
 # @FUNCTION: get_bashcompdir
 # @DESCRIPTION:
 # Get the bash-completion completions directory.
 get_bashcompdir() {
        debug-print-function ${FUNCNAME} "${@}"
 
        echo "${EPREFIX}$(_bash-completion-r1_get_bashcompdir)"
 }
 
 # @FUNCTION: get_bashhelpersdir
 # @INTERNAL
 # @DESCRIPTION:
 # Get the bash-completion helpers directory.
 get_bashhelpersdir() {
        debug-print-function ${FUNCNAME} "${@}"
 
        echo "${EPREFIX}$(_bash-completion-r1_get_bashhelpersdir)"
 }
 
 # @FUNCTION: dobashcomp
 # @USAGE: <file> [...]
 # @DESCRIPTION:
 # Install bash-completion files passed as args. Has EAPI-dependent failure
 # behavior (like doins).
 dobashcomp() {
        debug-print-function ${FUNCNAME} "${@}"
 
        (
                insopts -m 0644
                insinto "$(_bash-completion-r1_get_bashcompdir)"
                doins "${@}"
        )
 }
 
 # @FUNCTION: newbashcomp
 # @USAGE: <file> <newname>
 # @DESCRIPTION:
 # Install bash-completion file under a new name. Has EAPI-dependent failure
 # behavior (like newins).
 newbashcomp() {
        debug-print-function ${FUNCNAME} "${@}"
 
        (
                insopts -m 0644
                insinto "$(_bash-completion-r1_get_bashcompdir)"
                newins "${@}"
        )
 }
 
 # @FUNCTION: bashcomp_alias
 # @USAGE: <basename> <alias>...
 # @DESCRIPTION:
 # Alias <basename> completion to one or more commands (<alias>es).
 bashcomp_alias() {
        debug-print-function ${FUNCNAME} "${@}"
 
        [[ ${#} -lt 2 ]] && die "Usage: ${FUNCNAME} <basename> <alias>..."
        local base=${1} f
        shift
 
        for f; do
                dosym "${base}" "$(_bash-completion-r1_get_bashcompdir)/${f}" \
                        || return
        done
 }
+
+_BASH_COMPLETION_R1=1
+fi
-- 
2.32.0


Reply via email to