On Fri, 2021-07-16 at 16:21 +0200, David Seifert wrote: > On Fri, 2021-07-16 at 15:08 +0200, Michał Górny wrote: > > 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 > > + > > _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.
We need a skel.eclass. > > > # @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 > > > -- Best regards, Michał Górny