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 <[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.
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