1 # Copyright 1999-2014 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
5 # @ECLASS: bash-completion-r1.eclass
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
44 local path="$($(tc-getPKG_CONFIG) --variable=$1 bash-completion)"
45 # we need to return unprefixed, so strip from what pkg-config returns
47 echo "${path#${EPREFIX}}"
53 # @FUNCTION: _bash-completion-r1_get_bashcompdir
56 # Get unprefixed bash-completion completions directory.
57 _bash-completion-r1_get_bashcompdir() {
58 debug-print-function ${FUNCNAME} "${@}"
60 _bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion/completions
63 # @FUNCTION: _bash-completion-r1_get_helpersdir
66 # Get unprefixed bash-completion helpers directory.
67 _bash-completion-r1_get_bashhelpersdir() {
68 debug-print-function ${FUNCNAME} "${@}"
70 _bash-completion-r1_get_bashdir helpersdir /usr/share/bash-completion/helpers
73 # @FUNCTION: get_bashcompdir
75 # Get the bash-completion completions directory.
77 debug-print-function ${FUNCNAME} "${@}"
79 echo "${EPREFIX}$(_bash-completion-r1_get_bashcompdir)"
82 # @FUNCTION: get_bashhelpersdir
85 # Get the bash-completion helpers directory.
86 get_bashhelpersdir() {
87 debug-print-function ${FUNCNAME} "${@}"
89 echo "${EPREFIX}$(_bash-completion-r1_get_bashhelpersdir)"
92 # @FUNCTION: dobashcomp
95 # Install bash-completion files passed as args. Has EAPI-dependant failure
96 # behavior (like doins).
98 debug-print-function ${FUNCNAME} "${@}"
101 insinto "$(_bash-completion-r1_get_bashcompdir)"
106 # @FUNCTION: newbashcomp
107 # @USAGE: file newname
109 # Install bash-completion file under a new name. Has EAPI-dependant failure
110 # behavior (like newins).
112 debug-print-function ${FUNCNAME} "${@}"
115 insinto "$(_bash-completion-r1_get_bashcompdir)"
120 # @FUNCTION: bashcomp_alias
121 # @USAGE: <basename> <alias>...
123 # Alias <basename> completion to one or more commands (<alias>es).
125 debug-print-function ${FUNCNAME} "${@}"
127 [[ ${#} -lt 2 ]] && die "Usage: ${FUNCNAME} <basename> <alias>..."
132 dosym "${base}" "$(_bash-completion-r1_get_bashcompdir)/${f}"