Some ebuilds need to explicitly override bash-completion directory in
build system due to build systems having default non-matching Gentoo (or
rather Gentoo having bash-completion dir not matching anything else).

It's better to have a function to obtain that directory rather than for
ebuilds to hardcode it.
---
 gx86/eclass/bash-completion-r1.eclass | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/gx86/eclass/bash-completion-r1.eclass 
b/gx86/eclass/bash-completion-r1.eclass
index 8af46ee..5d23931 100644
--- a/gx86/eclass/bash-completion-r1.eclass
+++ b/gx86/eclass/bash-completion-r1.eclass
@@ -23,6 +23,25 @@ case ${EAPI:-0} in
        *) die "EAPI ${EAPI} unsupported (yet)."
 esac
 
+# @FUNCTION: _bash-completion-r1_get_bashcompdir
+# @INTERNAL
+# @DESCRIPTION:
+# Get unprefixed bash-completion directory.
+_bash-completion-r1_get_bashcompdir() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       echo /usr/share/bash-completion
+}
+
+# @FUNCTION: get_bashcompdir
+# @DESCRIPTION:
+# Get the bash-completion directory.
+get_bashcompdir() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       echo "${EPREFIX}$(_bash-completion-r1_get_bashcompdir)"
+}
+
 # @FUNCTION: dobashcomp
 # @USAGE: file [...]
 # @DESCRIPTION:
@@ -32,7 +51,7 @@ dobashcomp() {
        debug-print-function ${FUNCNAME} "${@}"
 
        (
-               insinto /usr/share/bash-completion
+               insinto "$(_bash-completion-r1_get_bashcompdir)"
                doins "${@}"
        )
 }
@@ -46,7 +65,7 @@ newbashcomp() {
        debug-print-function ${FUNCNAME} "${@}"
 
        (
-               insinto /usr/share/bash-completion
+               insinto "$(_bash-completion-r1_get_bashcompdir)"
                newins "${@}"
        )
 }
-- 
1.8.2.1


Reply via email to