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



Reply via email to