On Fri, 2021-07-16 at 15:08 +0200, Michał Górny wrote:
> Signed-off-by: Michał Górny <[email protected]>
> ---
> 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:
> # [email protected]
> -# @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
> +
_BASH_COMPLETION_R1_ECLASS is the common style.
> 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
>
I think we've settled on the "5|6|7|8" style over the single-char glob
range.
> # @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