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

Diff of /eclass/bash-completion.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.8 Revision 1.26
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2010 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.8 2005/01/02 11:56:08 ka0ttic Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/bash-completion.eclass,v 1.26 2011/04/19 04:19:47 darkside Exp $
4
5# @ECLASS: bash-completion.eclass
6# @MAINTAINER:
7# shell-tools@gentoo.org.
4# 8#
9# Original author: Aaron Walker <ka0ttic@gentoo.org>
10# @BLURB: An Interface for installing contributed bash-completion scripts
11# @DESCRIPTION:
5# Simple eclass that provides an interface for installing 12# Simple eclass that provides an interface for installing
6# contributed (ie not included in bash-completion proper) 13# contributed (ie not included in bash-completion proper)
7# bash-completion scripts. 14# bash-completion scripts.
8#
9# Author: Aaron Walker <ka0ttic@gentoo.org>
10#
11# Please assign any bug reports to shell-tools@gentoo.org.
12 15
13ECLASS="bash-completion" 16# @ECLASS-VARIABLE: BASHCOMPLETION_NAME
14INHERITED="${INHERITED} ${ECLASS}" 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
15EXPORT_FUNCTIONS pkg_postinst 25EXPORT_FUNCTIONS pkg_postinst
16 26
17IUSE="${IUSE} bash-completion" 27IUSE="bash-completion"
18 28
19RDEPEND="${RDEPEND} 29# Allow eclass to be inherited by eselect without a circular dependency
30if [[ ${CATEGORY}/${PN} != app-admin/eselect ]]; then
31 RDEPEND="bash-completion? ( app-admin/eselect )"
32fi
20 bash-completion? ( app-shells/bash-completion-config )" 33PDEPEND="bash-completion? ( app-shells/bash-completion )"
21 34
22# dobashcompletion <file> <new file> 35# @FUNCTION: dobashcompletion
23# First arg, <file>, is required and is the location of the bash-completion 36# @USAGE: [file] [new_file]
24# script to install. Second arg, <new file>, is optional and specifies an 37# @DESCRIPTION:
25# alternate filename to install as. 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}.
43dobashcompletion() {
44 local f
26 45
27dobashcompletion() { 46 if [[ -z ${1} && -z ${BASHCOMPFILES} ]]; then
28 [[ -z "$1" ]] && die "usage: dobashcompletion <file> <new file>" 47 die "Usage: dobashcompletion [file] [new file]"
29 [[ -z "${BASH_COMPLETION_NAME}" ]] && BASH_COMPLETION_NAME="${2:-${PN}}" 48 fi
30 49
31 if useq bash-completion ; then 50 if use bash-completion; then
32 insinto /usr/share/bash-completion 51 insinto /usr/share/bash-completion
52 if [[ -n ${1} ]]; then
53 [[ -z ${BASHCOMPLETION_NAME} ]] && BASHCOMPLETION_NAME="${2:-${PN}}"
33 newins "$1" "${BASH_COMPLETION_NAME}" || die "Failed to install $1" 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
34 fi 63 fi
35} 64}
36 65
66# @FUNCTION: bash-completion_pkg_postinst
67# @DESCRIPTION:
68# The bash-completion pkg_postinst function, which is exported
37bash-completion_pkg_postinst() { 69bash-completion_pkg_postinst() {
70 local f
71
38 if useq bash-completion ; then 72 if use bash-completion ; then
39 echo 73 elog "The following bash-completion scripts have been installed:"
74 if [[ -n ${BASHCOMPLETION_NAME} ]]; then
75 elog " ${BASHCOMPLETION_NAME}"
76 else
77 set -- ${BASHCOMPFILES}
78 for f in "$@"; do
79 elog " $(basename ${f})"
80 done
81 fi
82 elog
83 elog "To enable command-line completion on a per-user basis run:"
84 elog " eselect bashcomp enable <script>"
85 elog
40 einfo "To enable command-line completion for ${PN}, run:" 86 elog "To enable command-line completion system-wide run:"
41 einfo 87 elog " eselect bashcomp enable --global <script>"
42 einfo " bash-completion-config --install ${BASH_COMPLETION_NAME}"
43 einfo
44 einfo "to install locally, or"
45 einfo
46 einfo " bash-completion-config --global --install ${BASH_COMPLETION_NAME}"
47 einfo
48 einfo "to install system-wide."
49 einfo "Read bash-completion-config(1) for more information."
50 echo
51 fi 88 fi
52} 89}

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.20