62 lines
1.6 KiB
Bash
62 lines
1.6 KiB
Bash
if [ -r /etc/bash_completion ]; then
|
|
source /etc/bash_completion;
|
|
fi
|
|
|
|
if [ -d /usr/local/share/bash-completion/completions ]; then
|
|
source /usr/local/share/bash-completion/completions/*
|
|
fi
|
|
|
|
if type ykman > /dev/null 2>&1; then
|
|
_ykman_completion() {
|
|
local IFS=$'
|
|
'
|
|
COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
|
|
COMP_CWORD=$COMP_CWORD \
|
|
_YKMAN_COMPLETE=complete $1 ) )
|
|
return 0
|
|
}
|
|
|
|
_ykman_completionetup() {
|
|
local COMPLETION_OPTIONS=""
|
|
local BASH_VERSION_ARR=(${BASH_VERSION//./ })
|
|
# Only BASH version 4.4 and later have the nosort option.
|
|
if [ ${BASH_VERSION_ARR[0]} -gt 4 ] || ([ ${BASH_VERSION_ARR[0]} -eq 4 ] && [ ${BASH_VERSION_ARR[1]} -ge 4 ]); then
|
|
COMPLETION_OPTIONS="-o nosort"
|
|
fi
|
|
|
|
complete $COMPLETION_OPTIONS -F _ykman_completion ykman
|
|
}
|
|
|
|
_ykman_completionetup;
|
|
fi
|
|
|
|
if type kubectl > /dev/null 2>&1; then
|
|
source <(kubectl completion bash)
|
|
fi
|
|
|
|
if type doctl > /dev/null 2>&1; then
|
|
source <(doctl completion bash)
|
|
fi
|
|
|
|
if type helm > /dev/null 2>&1; then
|
|
source <(helm completion bash)
|
|
fi
|
|
|
|
if type brew > /dev/null 2>&1; then
|
|
HOMEBREW_PREFIX=$(brew --prefix)
|
|
for COMPLETION in "$HOMEBREW_PREFIX"/etc/bash_completion.d/*; do
|
|
[[ -f $COMPLETION ]] && source "$COMPLETION"
|
|
done
|
|
if [[ -f ${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh ]]; then
|
|
source "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
|
|
fi
|
|
fi
|
|
|
|
# Docker completions
|
|
for COMPLETION in /Applications/Docker.app/Contents/Resources/etc/*.bash-completion; do
|
|
[ -f ${COMPLETION} ] && source ${COMPLETION}
|
|
done
|
|
|
|
# Add completion to aliases
|
|
# See: https://github.com/cykerway/complete-alias
|
|
source ~/.homesick/repos/complete-alias/bash_completion.sh
|