1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
4 # @ECLASS: bash-completion-r1.eclass
7 # @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
8 # @BLURB: A few quick functions to install bash-completion files
16 # --with-bash-completion-dir="$(get_bashcompdir)"
22 # newbashcomp contrib/${PN}.bash-completion ${PN}
26 inherit toolchain-funcs
30 *) die "EAPI ${EAPI} unsupported (yet)."
33 # @FUNCTION: _bash-completion-r1_get_bashdir
36 # First argument is name of the string in bash-completion.pc
37 # Second argument is the fallback directory if the string is not found
39 # _bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion
40 _bash-completion-r1_get_bashdir() {
41 debug-print-function ${FUNCNAME} "${@}"
43 if $(tc-getPKG_CONFIG) --exists bash-completion &>/dev/null; then
45 path=$($(tc-getPKG_CONFIG) --variable="${1}" bash-completion) || die
46 # we need to return unprefixed, so strip from what pkg-config returns
48 echo "${path#${EPREFIX}}"
54 # @FUNCTION: _bash-completion-r1_get_bashcompdir
57 # Get unprefixed bash-completion completions directory.
58 _bash-completion-r1_get_bashcompdir() {
59 debug-print-function ${FUNCNAME} "${@}"
61 _bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion/completions
64 # @FUNCTION: _bash-completion-r1_get_helpersdir
67 # Get unprefixed bash-completion helpers directory.
68 _bash-completion-r1_get_bashhelpersdir() {
69 debug-print-function ${FUNCNAME} "${@}"
71 _bash-completion-r1_get_bashdir helpersdir /usr/share/bash-completion/helpers
74 # @FUNCTION: get_bashcompdir
76 # Get the bash-completion completions directory.
78 debug-print-function ${FUNCNAME} "${@}"
80 echo "${EPREFIX}$(_bash-completion-r1_get_bashcompdir)"
83 # @FUNCTION: get_bashhelpersdir
86 # Get the bash-completion helpers directory.
87 get_bashhelpersdir() {
88 debug-print-function ${FUNCNAME} "${@}"
90 echo "${EPREFIX}$(_bash-completion-r1_get_bashhelpersdir)"
93 # @FUNCTION: dobashcomp
96 # Install bash-completion files passed as args. Has EAPI-dependant failure
97 # behavior (like doins).
99 debug-print-function ${FUNCNAME} "${@}"
103 insinto "$(_bash-completion-r1_get_bashcompdir)"
108 # @FUNCTION: newbashcomp
109 # @USAGE: file newname
111 # Install bash-completion file under a new name. Has EAPI-dependant failure
112 # behavior (like newins).
114 debug-print-function ${FUNCNAME} "${@}"
118 insinto "$(_bash-completion-r1_get_bashcompdir)"
123 # @FUNCTION: bashcomp_alias
124 # @USAGE: <basename> <alias>...
126 # Alias <basename> completion to one or more commands (<alias>es).
128 debug-print-function ${FUNCNAME} "${@}"
130 [[ ${#} -lt 2 ]] && die "Usage: ${FUNCNAME} <basename> <alias>..."
135 dosym "${base}" "$(_bash-completion-r1_get_bashcompdir)/${f}" \