etc-gentoo/profile.d/bash-completion.sh

53 lines
2.0 KiB
Bash

# 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="/usr/share/bash-completion/base"
fi
source "/usr/share/bash-completion/.pre"
loaded_pre=true
fi
source "$f"
fi
done
# Clean up
$loaded_pre && source "/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 \
"/etc/bash_completion.d/base" \
~/.bash_completion.d/base \
"/etc/bash_completion.d/"* \
~/.bash_completion.d/* \
~/.bash_completion
fi
unset bash bmajor bminor