/[gentoo-x86]/eclass/bash-completion.eclass
Gentoo

Contents of /eclass/bash-completion.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (hide annotations) (download)
Thu Mar 31 04:13:51 2011 UTC (3 years, 5 months ago) by dirtyepic
Branch: MAIN
Changes since 1.24: +44 -20 lines
Add support for installing multiple bash-completion files. (bug #356585)

1 ulm 1.23 # Copyright 1999-2010 Gentoo Foundation
2 ka0ttic 1.1 # Distributed under the terms of the GNU General Public License v2
3 dirtyepic 1.25 # $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.24 2010/04/07 04:20:46 darkside Exp $
4 pva 1.17
5     # @ECLASS: bash-completion.eclass
6     # @MAINTAINER:
7     # shell-tools@gentoo.org.
8 ka0ttic 1.1 #
9 pva 1.17 # Original author: Aaron Walker <ka0ttic@gentoo.org>
10     # @BLURB: An Interface for installing contributed bash-completion scripts
11     # @DESCRIPTION:
12 ka0ttic 1.1 # Simple eclass that provides an interface for installing
13     # contributed (ie not included in bash-completion proper)
14     # bash-completion scripts.
15 pva 1.17
16 darkside 1.24 # @ECLASS-VARIABLE: BASHCOMPLETION_NAME
17 pva 1.17 # @DESCRIPTION:
18     # Install the completion script with this name (see also dobashcompletion)
19 ka0ttic 1.1
20 dirtyepic 1.25 # @ECLASS-VARIABLE: BASHCOMPFILES
21     # @DESCRIPTION:
22     # Space delimited list of files to install if dobashcompletion is called without
23     # arguments.
24    
25 ka0ttic 1.5 EXPORT_FUNCTIONS pkg_postinst
26 ka0ttic 1.1
27 swegener 1.15 IUSE="bash-completion"
28 ka0ttic 1.3
29 ulm 1.22 # Allow eclass to be inherited by eselect without a circular dependency
30     if [[ ${CATEGORY}/${PN} != app-admin/eselect ]]; then
31     RDEPEND="bash-completion? ( app-admin/eselect )"
32     fi
33 ulm 1.23 PDEPEND="bash-completion? ( app-shells/bash-completion )"
34 ka0ttic 1.1
35 pva 1.17 # @FUNCTION: dobashcompletion
36 dirtyepic 1.25 # @USAGE: [file] [new_file]
37 pva 1.17 # @DESCRIPTION:
38 dirtyepic 1.25 # The first argument is the location of the bash-completion script to install,
39     # and is required if BASHCOMPFILES is not set. The second argument is the name
40     # the script will be installed as. If BASHCOMPLETION_NAME is set, it overrides
41     # the second argument. If no second argument is given and BASHCOMPLETION_NAME
42     # is not set, it will default to ${PN}.
43 ka0ttic 1.1 dobashcompletion() {
44 dirtyepic 1.25 local f
45    
46     if [[ -z ${1} && -z ${BASHCOMPFILES} ]]; then
47     die "Usage: dobashcompletion [file] [new file]"
48     fi
49 ka0ttic 1.7
50 dirtyepic 1.25 if use bash-completion; then
51 ka0ttic 1.1 insinto /usr/share/bash-completion
52 dirtyepic 1.25 if [[ -n ${1} ]]; then
53     [[ -z ${BASHCOMPLETION_NAME} ]] && BASHCOMPLETION_NAME="${2:-${PN}}"
54     newins "${1}" "${BASHCOMPLETION_NAME}" || die "Failed to install ${1}"
55     else
56     set -- ${BASHCOMPFILES}
57     for f in "$@"; do
58     if [[ -e ${f} ]]; then
59     doins "${f}" || die "Failed to install ${f}"
60     fi
61     done
62     fi
63 ka0ttic 1.1 fi
64     }
65 ka0ttic 1.5
66 pva 1.17 # @FUNCTION: bash-completion_pkg_postinst
67     # @DESCRIPTION:
68     # The bash-completion pkg_postinst function, which is exported
69 ka0ttic 1.5 bash-completion_pkg_postinst() {
70 dirtyepic 1.25 local f
71    
72 ulm 1.23 if use bash-completion ; then
73 dirtyepic 1.25 elog "The following bash-completion scripts have been installed:"
74 darkside 1.19 elog
75 dirtyepic 1.25 if [[ -n ${BASHCOMPLETION_NAME} ]]; then
76     elog " ${BASHCOMPLETION_NAME}"
77     else
78     set -- ${BASHCOMPFILES}
79     for f in "$@"; do
80     elog " $(basename ${f})"
81     done
82     fi
83 darkside 1.19 elog
84 dirtyepic 1.25 elog "To enable command-line completion on a per-user basis run:"
85     elog " eselect bashcomp enable <script>"
86 darkside 1.19 elog
87 dirtyepic 1.25 elog "To enable command-line completion system-wide run:"
88     elog " eselect bashcomp enable --global <script>"
89 ka0ttic 1.5 fi
90     }

  ViewVC Help
Powered by ViewVC 1.1.20