| # Copyright 1999-2009 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License, v2 or later |
| # $Header: /var/cvsroot/gentoo-x86/app-shells/bash-completion/files/bash-completion.sh-gentoo-1.2,v 1.1 2010/07/02 15:07:33 darkside Exp $ |
| |
| # Check for interactive bash and that we haven't already been sourced. |
| [ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$BASH_COMPLETION" ] && return |
| |
| # Check for recent enough version of bash. |
| bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.} |
| if [ $bmajor -gt 3 ] || [ $bmajor -eq 3 -a $bminor -ge 2 ]; then |
| _load_completions() { |
| declare f x loaded_pre=false |
| for f; do |
| if [[ -f $f ]]; then |
| # Prevent loading base twice, initially and via glob |
| if $loaded_pre && [[ $f == */base ]]; then |
| continue |
| fi |
| |
| # Some modules, including base, depend on the definitions |
| # in .pre. See the ebuild for how this is created. |
| if ! $loaded_pre; then |
| if [[ ${BASH_COMPLETION-unset} == unset ]]; then |
| BASH_COMPLETION="@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/base" |
| fi |
| source "@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/.pre" |
| loaded_pre=true |
| fi |
| |
| source "$f" |
| fi |
| done |
| |
| # Clean up |
| $loaded_pre && source "@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/.post" |
| unset -f _load_completions # not designed to be called more than once |
| } |
| |
| # 1. Load base, if eselected. This was previously known as |
| # /etc/bash_completion |
| # 2. Load completion modules, maintained via eselect bashcomp --global |
| # 3. Load user completion modules, maintained via eselect bashcomp |
| # 4. Load user completion file last, overrides modules at user discretion |
| # This order is subject to change once upstream decides on something. |
| _load_completions \ |
| "@GENTOO_PORTAGE_EPREFIX@/etc/bash_completion.d/base" \ |
| ~/.bash_completion.d/base \ |
| "@GENTOO_PORTAGE_EPREFIX@/etc/bash_completion.d/"* \ |
| ~/.bash_completion.d/* \ |
| ~/.bash_completion |
| fi |
| unset bash bmajor bminor |