40 lines
1.2 KiB
Bash
40 lines
1.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Only operate on MacOS since there are no linux paths
|
||
|
if [[ "$(uname -s)" != 'Darwin' ]] ; then
|
||
|
_log_warning "unsupported operating system - only 'Darwin' is supported"
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
# Make sure git is installed
|
||
|
_command_exists git || return 0
|
||
|
|
||
|
# Don't handle completion if it's already managed
|
||
|
if complete -p git &>/dev/null ; then
|
||
|
_log_warning "completion already loaded - this usually means it is safe to stop using this completion"
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
_git_bash_completion_found=false
|
||
|
_git_bash_completion_paths=(
|
||
|
# MacOS non-system locations
|
||
|
'/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash'
|
||
|
'/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash'
|
||
|
)
|
||
|
|
||
|
# Load the first completion file found
|
||
|
for _comp_path in "${_git_bash_completion_paths[@]}" ; do
|
||
|
if [ -r "$_comp_path" ] ; then
|
||
|
_git_bash_completion_found=true
|
||
|
source "$_comp_path"
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# Cleanup
|
||
|
if [[ "${_git_bash_completion_found}" == false ]]; then
|
||
|
_log_warning "no completion files found - please try enabling the 'system' completion instead."
|
||
|
fi
|
||
|
unset _git_bash_completion_paths
|
||
|
unset _git_bash_completion_found
|