completion: bash: add __git_have_func helper

This makes the code more readable, and also will help when new code
wants to do similar checks.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Felipe Contreras 2020-12-30 17:29:47 -06:00 committed by Junio C Hamano
parent 71ca53e812
commit 7f94b78dda

View File

@ -3358,15 +3358,19 @@ __git_support_parseopt_helper () {
esac
}
__git_have_func () {
declare -f $1 >/dev/null 2>/dev/null
}
__git_complete_command () {
local command="$1"
local completion_func="_git_${command//-/_}"
if ! declare -f $completion_func >/dev/null 2>/dev/null &&
declare -f _completion_loader >/dev/null 2>/dev/null
if ! __git_have_func $completion_func &&
__git_have_func _completion_loader
then
_completion_loader "git-$command"
fi
if declare -f $completion_func >/dev/null 2>/dev/null
if __git_have_func $completion_func
then
$completion_func
return 0