bash completion: complete variable names for "git config" with options
This makes it easier for users to get and unset their configuration variables without having to open documentation or dig through their configuration file. __git_config_get_set_variables() retrieves the set configuration variables from the appropriate configuration file. For example, if the user has previously specified --global only the global variables are returned. The same applies for --system, and --file. If no location has been specified, all set variables are returned. Signed-off-by: Stephen Boyd <bebarino@gmail.com> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4bf1f68ee7
commit
00652369ff
@ -1322,6 +1322,35 @@ _git_send_email ()
|
||||
COMPREPLY=()
|
||||
}
|
||||
|
||||
__git_config_get_set_variables ()
|
||||
{
|
||||
local prevword word config_file= c=$COMP_CWORD
|
||||
while [ $c -gt 1 ]; do
|
||||
word="${COMP_WORDS[c]}"
|
||||
case "$word" in
|
||||
--global|--system|--file=*)
|
||||
config_file="$word"
|
||||
break
|
||||
;;
|
||||
-f|--file)
|
||||
config_file="$word $prevword"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
prevword=$word
|
||||
c=$((--c))
|
||||
done
|
||||
|
||||
for i in $(git --git-dir="$(__gitdir)" config $config_file --list \
|
||||
2>/dev/null); do
|
||||
case "$i" in
|
||||
*.*)
|
||||
echo "${i/=*/}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
_git_config ()
|
||||
{
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
@ -1388,6 +1417,10 @@ _git_config ()
|
||||
__gitcomp "$__git_send_email_suppresscc_options"
|
||||
return
|
||||
;;
|
||||
--get|--get-all|--unset|--unset-all)
|
||||
__gitcomp "$(__git_config_get_set_variables)"
|
||||
return
|
||||
;;
|
||||
*.*)
|
||||
COMPREPLY=()
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user