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

Contents of /eclass/bash-completion.eclass

Parent Directory Parent Directory | Revision Log Revision Log


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

1 # Copyright 1999-2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.24 2010/04/07 04:20:46 darkside Exp $
4
5 # @ECLASS: bash-completion.eclass
6 # @MAINTAINER:
7 # shell-tools@gentoo.org.
8 #
9 # Original author: Aaron Walker <ka0ttic@gentoo.org>
10 # @BLURB: An Interface for installing contributed bash-completion scripts
11 # @DESCRIPTION:
12 # Simple eclass that provides an interface for installing
13 # contributed (ie not included in bash-completion proper)
14 # bash-completion scripts.
15
16 # @ECLASS-VARIABLE: BASHCOMPLETION_NAME
17 # @DESCRIPTION:
18 # Install the completion script with this name (see also dobashcompletion)
19
20 # @ECLASS-VARIABLE: BASHCOMPFILES
21 # @DESCRIPTION:
22 # Space delimited list of files to install if dobashcompletion is called without
23 # arguments.
24
25 EXPORT_FUNCTIONS pkg_postinst
26
27 IUSE="bash-completion"
28
29 # 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 PDEPEND="bash-completion? ( app-shells/bash-completion )"
34
35 # @FUNCTION: dobashcompletion
36 # @USAGE: [file] [new_file]
37 # @DESCRIPTION:
38 # 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 dobashcompletion() {
44 local f
45
46 if [[ -z ${1} && -z ${BASHCOMPFILES} ]]; then
47 die "Usage: dobashcompletion [file] [new file]"
48 fi
49
50 if use bash-completion; then
51 insinto /usr/share/bash-completion
52 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 fi
64 }
65
66 # @FUNCTION: bash-completion_pkg_postinst
67 # @DESCRIPTION:
68 # The bash-completion pkg_postinst function, which is exported
69 bash-completion_pkg_postinst() {
70 local f
71
72 if use bash-completion ; then
73 elog "The following bash-completion scripts have been installed:"
74 elog
75 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 elog
84 elog "To enable command-line completion on a per-user basis run:"
85 elog " eselect bashcomp enable <script>"
86 elog
87 elog "To enable command-line completion system-wide run:"
88 elog " eselect bashcomp enable --global <script>"
89 fi
90 }

  ViewVC Help
Powered by ViewVC 1.1.20