| 1 | # Copyright 1999-2005 Gentoo Foundation |
1 | # Copyright 1999-2004 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.1.1.1 2005/11/30 09:59:22 chriswhite Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.6 2004/12/29 10:26:33 ka0ttic Exp $ |
| 4 | # |
4 | # |
| 5 | # Simple eclass that provides an interface for installing |
5 | # Simple eclass that provides an interface for installing |
| 6 | # contributed (ie not included in bash-completion proper) |
6 | # contributed (ie not included in bash-completion proper) |
| 7 | # bash-completion scripts. |
7 | # bash-completion scripts. |
| 8 | # |
8 | # |
| 9 | # Author: Aaron Walker <ka0ttic@gentoo.org> |
9 | # Author: Aaron Walker <ka0ttic@gentoo.org> |
| 10 | # |
10 | # |
| 11 | # Please assign any bug reports to shell-tools@gentoo.org. |
11 | # Please assign any bug reports to shell-tools@gentoo.org. |
| 12 | |
12 | |
|
|
13 | ECLASS="bash-completion" |
|
|
14 | INHERITED="${INHERITED} ${ECLASS}" |
| 13 | EXPORT_FUNCTIONS pkg_postinst |
15 | EXPORT_FUNCTIONS pkg_postinst |
| 14 | |
16 | |
| 15 | IUSE="bash-completion" |
17 | IUSE="${IUSE} bash-completion" |
| 16 | |
18 | |
| 17 | # bash-completion-config is deprecated in favor of eselect, |
19 | #RDEPEND="${RDEPEND} |
| 18 | # however, eselect currently lacks stable keywords. |
20 | # bash-completion? ( app-shells/bash-completion-config )" |
| 19 | RDEPEND="bash-completion? |
21 | |
| 20 | ( || ( |
22 | ##### VARIABLES ##### |
| 21 | app-admin/eselect |
23 | [[ -z "${BASH_COMPLETION_NAME}" ]] && BASH_COMPLETION_NAME="${PN}" |
| 22 | app-shells/bash-completion-config |
|
|
| 23 | ) |
|
|
| 24 | )" |
|
|
| 25 | |
24 | |
| 26 | # dobashcompletion <file> <new file> |
25 | # dobashcompletion <file> <new file> |
| 27 | # First arg, <file>, is required and is the location of the bash-completion |
26 | # First arg, <file>, is required and is the location of the bash-completion |
| 28 | # script to install. If the variable BASH_COMPLETION_NAME is set in the |
27 | # script to install. Second arg, <new file>, is optional and specifies an |
| 29 | # ebuild, dobashcompletion will install <file> as |
28 | # alternate filename to install as. |
| 30 | # /usr/share/bash-completion/$BASH_COMPLETION_NAME. If it is not set, |
|
|
| 31 | # dobashcompletion will check if a second arg ($2) was passed, installing as |
|
|
| 32 | # the specified name. Failing both these checks, dobashcompletion will |
|
|
| 33 | # install the file as /usr/share/bash-completion/${PN}. |
|
|
| 34 | |
29 | |
| 35 | dobashcompletion() { |
30 | dobashcompletion() { |
| 36 | [[ -z "$1" ]] && die "usage: dobashcompletion <file> <new file>" |
31 | [[ -z "$1" ]] && die "usage: dobashcompletion <file> <new file>" |
| 37 | [[ -z "${BASH_COMPLETION_NAME}" ]] && BASH_COMPLETION_NAME="${2:-${PN}}" |
32 | [[ -n "$2" ]] && export BASH_COMPLETION_NAME="$2" |
| 38 | |
|
|
| 39 | if useq bash-completion ; then |
33 | if useq bash-completion ; then |
| 40 | insinto /usr/share/bash-completion |
34 | insinto /usr/share/bash-completion |
| 41 | newins "$1" "${BASH_COMPLETION_NAME}" || die "Failed to install $1" |
35 | newins "$1" "${BASH_COMPLETION_NAME}" || die "Failed to install $1" |
| 42 | fi |
36 | fi |
| 43 | } |
37 | } |
| 44 | |
38 | |
| 45 | bash-completion_pkg_postinst() { |
39 | bash-completion_pkg_postinst() { |
| 46 | if useq bash-completion ; then |
40 | if useq bash-completion ; then |
| 47 | echo |
41 | echo |
| 48 | einfo "To enable command-line completion for ${PN}, run:" |
42 | einfo "To enable command-line completion for ${PN}, run:" |
|
|
43 | |
|
|
44 | # NOTE: this is temporary; bash-completion-config will be in RDEPEND |
|
|
45 | # once it goes stable and can be used as a dependency. |
|
|
46 | if has_version 'app-shells/bash-completion-config' ; then |
| 49 | einfo |
47 | einfo |
| 50 | if has_version app-admin/eselect ; then |
|
|
| 51 | einfo " eselect bashcomp enable ${BASH_COMPLETION_NAME:-${PN}}" |
|
|
| 52 | else |
|
|
| 53 | einfo " bash-completion-config --install ${BASH_COMPLETION_NAME:-${PN}}" |
48 | einfo " bash-completion-config --install ${BASH_COMPLETION_NAME}" |
| 54 | einfo |
49 | einfo |
| 55 | einfo "to install locally, or" |
50 | einfo "to install locally, or" |
| 56 | einfo |
51 | einfo |
| 57 | einfo " bash-completion-config --global --install ${BASH_COMPLETION_NAME:-${PN}}" |
52 | einfo " bash-completion-config --global --install ${BASH_COMPLETION_NAME}" |
| 58 | einfo |
53 | einfo |
| 59 | einfo "to install system-wide." |
54 | einfo "to install system-wide." |
| 60 | einfo "Read bash-completion-config(1) for more information." |
55 | einfo "Read bash-completion-config(1) for more information." |
|
|
56 | else |
|
|
57 | einfo " ln -s /usr/share/bash-completion/${BASH_COMPLETION_NAME} \\ " |
|
|
58 | einfo " /etc/bash_completion.d/" |
| 61 | fi |
59 | fi |
| 62 | echo |
60 | echo |
| 63 | fi |
61 | fi |
| 64 | } |
62 | } |