-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2013 from gaelicWizard/completion/system
completion/system: load earlier than others
- Loading branch information
Showing
4 changed files
with
45 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,60 @@ | ||
#!/usr/bin/env bash | ||
# shellcheck shell=bash | ||
# | ||
# Loads the system's Bash completion modules. | ||
# If Homebrew is installed (OS X), it's Bash completion modules are loaded. | ||
|
||
if shopt -qo nounset | ||
then # Bash-completion is too large and complex to expect to handle unbound variables throughout the whole codebase. | ||
# Load before other completions | ||
# BASH_IT_LOAD_PRIORITY: 325 | ||
|
||
# Bash-completion is too large and complex to expect to handle unbound variables throughout the whole codebase. | ||
if shopt -qo nounset; then | ||
__bash_it_restore_nounset=true | ||
shopt -uo nounset | ||
else | ||
__bash_it_restore_nounset=false | ||
fi | ||
|
||
if [[ -r "${BASH_COMPLETION:-}" ]] ; then | ||
# shellcheck disable=SC1091 | ||
if [[ -r "${BASH_COMPLETION:-}" ]]; then | ||
# shellcheck disable=SC1090 | ||
source "${BASH_COMPLETION}" | ||
|
||
elif [[ -r /etc/bash_completion ]] ; then | ||
# shellcheck disable=SC1091 | ||
source /etc/bash_completion | ||
elif [[ -r /etc/bash_completion ]]; then | ||
# shellcheck disable=SC1091 | ||
source /etc/bash_completion | ||
|
||
# Some distribution makes use of a profile.d script to import completion. | ||
elif [[ -r /etc/profile.d/bash_completion.sh ]] ; then | ||
# shellcheck disable=SC1091 | ||
source /etc/profile.d/bash_completion.sh | ||
|
||
elif _bash_it_homebrew_check | ||
then | ||
: ${BASH_COMPLETION_COMPAT_DIR:=$BASH_IT_HOMEBREW_PREFIX/etc/bash_completion.d} | ||
|
||
case "${BASH_VERSION}" in | ||
1*|2*|3.0*|3.1*) | ||
_log_warning "Cannot load completion due to version of shell. Are you using Bash 3.2+?" | ||
;; | ||
3.2*|4.0*|4.1*) | ||
# Import version 1.x of bash-completion, if installed. | ||
BASH_COMPLETION="$BASH_IT_HOMEBREW_PREFIX/opt/bash-completion@1/etc/bash_completion" | ||
if [[ -r "$BASH_COMPLETION" ]] ; then | ||
# shellcheck disable=SC1090 | ||
source "$BASH_COMPLETION" | ||
else | ||
unset BASH_COMPLETION | ||
fi | ||
;; | ||
4.2*|5*|*) | ||
# homebrew/versions/bash-completion2 (required for projects.completion.bash) is installed to this path | ||
if [[ -r "$BASH_IT_HOMEBREW_PREFIX"/etc/profile.d/bash_completion.sh ]] ; then | ||
# shellcheck disable=SC1090 | ||
source "$BASH_IT_HOMEBREW_PREFIX"/etc/profile.d/bash_completion.sh | ||
fi | ||
;; | ||
esac | ||
elif [[ -r /etc/profile.d/bash_completion.sh ]]; then | ||
# shellcheck disable=SC1091 | ||
source /etc/profile.d/bash_completion.sh | ||
|
||
elif _bash_it_homebrew_check; then | ||
: "${BASH_COMPLETION_COMPAT_DIR:=$BASH_IT_HOMEBREW_PREFIX/etc/bash_completion.d}" | ||
|
||
case "${BASH_VERSION}" in | ||
1* | 2* | 3.0* | 3.1*) | ||
_log_warning "Cannot load completion due to version of shell. Are you using Bash 3.2+?" | ||
;; | ||
3.2* | 4.0* | 4.1*) | ||
# Import version 1.x of bash-completion, if installed. | ||
BASH_COMPLETION="$BASH_IT_HOMEBREW_PREFIX/opt/bash-completion@1/etc/bash_completion" | ||
if [[ -r "$BASH_COMPLETION" ]]; then | ||
# shellcheck disable=SC1090 | ||
source "$BASH_COMPLETION" | ||
else | ||
unset BASH_COMPLETION | ||
fi | ||
;; | ||
4.2* | 5* | *) | ||
# homebrew/versions/bash-completion2 (required for projects.completion.bash) is installed to this path | ||
if [[ -r "${BASH_IT_HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]; then | ||
# shellcheck disable=SC1091 | ||
source "${BASH_IT_HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" | ||
fi | ||
;; | ||
esac | ||
fi | ||
|
||
if $__bash_it_restore_nounset | ||
then | ||
if [[ ${__bash_it_restore_nounset:-false} == "true" ]]; then | ||
shopt -so nounset | ||
fi | ||
unset __bash_it_restore_nounset |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters