completions/git: Support multiple git paths and resolve symlink

Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
This commit is contained in:
Jean-Sébastien Hedde
2022-02-04 16:48:34 +01:00
committed by Koichi Murase
parent 5516f7e2ed
commit c106583722

View File

@@ -1,10 +1,17 @@
# bash completion support for Git.
_omb_completion_git_initialize() {
if ! _omb_util_function_exists __gitdir; then
local path
for path in $(type -aP git);
do
path="${path%/git}"
local git_paths path
IFS=$'\n' read -r -d '' -a git_paths <<< "$(type -aP git)"
# Note: Falling back on /usr (should already be in the array)
git_paths+=("/usr/bin/git")
for path in "${git_paths[@]}"; do
if [[ -L $path ]]; then
path=$(readlink -f $path)
fi
# Note: In the case of symbolic link, the true binary name can
# contain prefix or suffix for architectures and versions.
path="${path%/*}"
local prefix="${path%/bin}" file
for file in share/bash-completion/completions/git share/git-core/contrib/completion/git-completion.bash;
do