119 lines
2.9 KiB
Bash
119 lines
2.9 KiB
Bash
# Copyright 1999-2013 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion-r1.eclass,v 1.7 2013/07/22 11:38:59 ssuominen Exp $
|
|
|
|
# @ECLASS: bash-completion-r1.eclass
|
|
# @MAINTAINER:
|
|
# mgorny@gentoo.org
|
|
# @BLURB: A few quick functions to install bash-completion files
|
|
# @EXAMPLE:
|
|
#
|
|
# @CODE
|
|
# EAPI=5
|
|
#
|
|
# src_configure() {
|
|
# econf \
|
|
# --with-bash-completion-dir="$(get_bashcompdir)"
|
|
# }
|
|
#
|
|
# src_install() {
|
|
# default
|
|
#
|
|
# newbashcomp contrib/${PN}.bash-completion ${PN}
|
|
# }
|
|
# @CODE
|
|
|
|
inherit toolchain-funcs
|
|
|
|
case ${EAPI:-0} in
|
|
0|1|2|3|4|5) ;;
|
|
*) die "EAPI ${EAPI} unsupported (yet)."
|
|
esac
|
|
|
|
# @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/completions
|
|
_bash-completion-r1_get_bashdir() {
|
|
debug-print-function ${FUNCNAME} "${@}"
|
|
|
|
if $(tc-getPKG_CONFIG) --exists bash-completion; then
|
|
echo "$($(tc-getPKG_CONFIG) --variable=$1 bash-completion)"
|
|
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} "${@}"
|
|
|
|
if has_version '<app-shells/bash-completion-2.1-r1'; then
|
|
_bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion
|
|
else
|
|
_bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion/completions
|
|
fi
|
|
}
|
|
|
|
# @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 "$(_bash-completion-r1_get_bashcompdir)"
|
|
}
|
|
|
|
# @FUNCTION: get_bashhelpersdir
|
|
# @INTERNAL
|
|
# @DESCRIPTION:
|
|
# Get the bash-completion helpers directory.
|
|
get_bashhelpersdir() {
|
|
debug-print-function ${FUNCNAME} "${@}"
|
|
|
|
echo "$(_bash-completion-r1_get_bashhelpersdir)"
|
|
}
|
|
|
|
# @FUNCTION: dobashcomp
|
|
# @USAGE: file [...]
|
|
# @DESCRIPTION:
|
|
# Install bash-completion files passed as args. Has EAPI-dependant failure
|
|
# behavior (like doins).
|
|
dobashcomp() {
|
|
debug-print-function ${FUNCNAME} "${@}"
|
|
|
|
(
|
|
insinto "$(_bash-completion-r1_get_bashcompdir)"
|
|
doins "${@}"
|
|
)
|
|
}
|
|
|
|
# @FUNCTION: newbashcomp
|
|
# @USAGE: file newname
|
|
# @DESCRIPTION:
|
|
# Install bash-completion file under a new name. Has EAPI-dependant failure
|
|
# behavior (like newins).
|
|
newbashcomp() {
|
|
debug-print-function ${FUNCNAME} "${@}"
|
|
|
|
(
|
|
insinto "$(_bash-completion-r1_get_bashcompdir)"
|
|
newins "${@}"
|
|
)
|
|
}
|