| 1 | # Copyright 1999-2004 Gentoo Foundation |
1 | # Copyright 1999-2005 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 2004/10/26 22:28:22 ka0ttic Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.15 2005/07/11 15:08:06 swegener 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" |
13 | EXPORT_FUNCTIONS pkg_postinst |
| 14 | INHERITED="${INHERITED} ${ECLASS}" |
|
|
| 15 | |
14 | |
| 16 | IUSE="${IUSE} bash-completion" |
15 | IUSE="bash-completion" |
|
|
16 | |
| 17 | RDEPEND="bash-completion? ( app-shells/bash-completion )" |
17 | RDEPEND="bash-completion? ( app-shells/bash-completion-config )" |
| 18 | |
18 | |
| 19 | # dobashcompletion <file> <new file> |
19 | # dobashcompletion <file> <new file> |
| 20 | # First arg, <file>, is required and is the location of the bash-completion |
20 | # First arg, <file>, is required and is the location of the bash-completion |
| 21 | # script to install. Second arg, <new file>, is optional and specifies an |
21 | # script to install. If the variable BASH_COMPLETION_NAME is set in the |
| 22 | # alternate filename to install as. |
22 | # ebuild, dobashcompletion will install <file> as |
|
|
23 | # /usr/share/bash-completion/$BASH_COMPLETION_NAME. If it is not set, |
|
|
24 | # dobashcompletion will check if a second arg ($2) was passed, installing as |
|
|
25 | # the specified name. Failing both these checks, dobashcompletion will |
|
|
26 | # install the file as /usr/share/bash-completion/${PN}. |
| 23 | |
27 | |
| 24 | dobashcompletion() { |
28 | dobashcompletion() { |
| 25 | [ -z "$1" ] && die "usage: dobashcompletion <file> <new file>" |
29 | [[ -z "$1" ]] && die "usage: dobashcompletion <file> <new file>" |
|
|
30 | [[ -z "${BASH_COMPLETION_NAME}" ]] && BASH_COMPLETION_NAME="${2:-${PN}}" |
|
|
31 | |
| 26 | if useq bash-completion ; then |
32 | if useq bash-completion ; then |
| 27 | insinto /usr/share/bash-completion |
33 | insinto /usr/share/bash-completion |
| 28 | newins "$1" "${2:-${1##*/}}" |
34 | newins "$1" "${BASH_COMPLETION_NAME}" || die "Failed to install $1" |
| 29 | fi |
35 | fi |
| 30 | } |
36 | } |
|
|
37 | |
|
|
38 | bash-completion_pkg_postinst() { |
|
|
39 | if useq bash-completion ; then |
|
|
40 | echo |
|
|
41 | einfo "To enable command-line completion for ${PN}, run:" |
|
|
42 | einfo |
|
|
43 | if has_version app-admin/eselect ; then |
|
|
44 | einfo " eselect bashcomp enable ${BASH_COMPLETION_NAME:-${PN}}" |
|
|
45 | else |
|
|
46 | einfo " bash-completion-config --install ${BASH_COMPLETION_NAME:-${PN}}" |
|
|
47 | einfo |
|
|
48 | einfo "to install locally, or" |
|
|
49 | einfo |
|
|
50 | einfo " bash-completion-config --global --install ${BASH_COMPLETION_NAME:-${PN}}" |
|
|
51 | einfo |
|
|
52 | einfo "to install system-wide." |
|
|
53 | einfo "Read bash-completion-config(1) for more information." |
|
|
54 | fi |
|
|
55 | echo |
|
|
56 | fi |
|
|
57 | } |