- if [ "$SHELL" = /bin/bash ]; then
- if [ -d /etc/bash_completion.d -o -d /usr/share/bash-completion/completions ]; then
- has_completion() { [ -r /etc/bash_completion.d/$1 -o -r /usr/share/bash-completion/completions/$1 ]; }
- fi
- elif [ "$SHELL" = /usr/local/bin/bash ]; then
- if [ -d /usr/local/etc/bash_completion.d ]; then
+ if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then
+ if [ -d /usr/share/bash-completion -a -r /usr/share/bash-completion/bash_completion ]; then
+ . /usr/share/bash-completion/bash_completion
+ has_completion() { [ -r /usr/share/bash-completion/completions/$1 ]; }
+ elif [ -r /etc/bash_completion ]; then
+ . /etc/bash_completion
+ has_completion() { [ -r /etc/bash_completion.d/$1 ]; }
+ elif [ -d /etc/bash_completion.d ]; then
+ for _compf in /etc/bash_completion.d/*; do
+ . $_compf
+ done
+ has_completion() { [ -r /etc/bash_completion.d/$1 ]; }
+ elif [ -d /usr/local/etc/bash_completion.d ]; then
+ for _compf in /usr/local/etc/bash_completion.d/*; do
+ . $_compf
+ done