mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
bash-completion: refactor unique subcommand processing
Let's keep the main processing loop free of subcommand implementations by pulling the existing help & start commands into dedicated functions. Having a single giant function is harder to track as we add more and more logic in. Bug: https://crbug.com/gerrit/14797 Change-Id: I2b62dc430c0e7574f09aa4838f4ef03fbe4bf7fb Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/312903 Reviewed-by: Xin Li <delphij@google.com> Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
parent
13d6c94cfb
commit
b380322174
@ -66,6 +66,31 @@ __complete_repo_command_projects() {
|
|||||||
COMPREPLY=($(compgen -W "$(__complete_repo_list_projects)" -- "${current}"))
|
COMPREPLY=($(compgen -W "$(__complete_repo_list_projects)" -- "${current}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Complete `repo help`.
|
||||||
|
__complete_repo_command_help() {
|
||||||
|
local current=$1
|
||||||
|
# CWORD=1 is "start".
|
||||||
|
# CWORD=2 is the <subcommand> which we complete here.
|
||||||
|
if [[ ${COMP_CWORD} -eq 2 ]]; then
|
||||||
|
COMPREPLY=(
|
||||||
|
$(compgen -W "$(__complete_repo_list_commands)" -- "${current}")
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Complete `repo start`.
|
||||||
|
__complete_repo_command_start() {
|
||||||
|
local current=$1
|
||||||
|
# CWORD=1 is "start".
|
||||||
|
# CWORD=2 is the <branch> which we don't complete.
|
||||||
|
# CWORD=3+ are <projects> which we complete here.
|
||||||
|
if [[ ${COMP_CWORD} -gt 2 ]]; then
|
||||||
|
COMPREPLY=(
|
||||||
|
$(compgen -W "$(__complete_repo_list_projects)" -- "${current}")
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Complete the repo subcommand arguments.
|
# Complete the repo subcommand arguments.
|
||||||
__complete_repo_arg() {
|
__complete_repo_arg() {
|
||||||
if [[ ${COMP_CWORD} -le 1 ]]; then
|
if [[ ${COMP_CWORD} -le 1 ]]; then
|
||||||
@ -86,21 +111,8 @@ __complete_repo_arg() {
|
|||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
help)
|
help|start)
|
||||||
if [[ ${COMP_CWORD} -eq 2 ]]; then
|
__complete_repo_command_${command} "${current}"
|
||||||
COMPREPLY=(
|
|
||||||
$(compgen -W "$(__complete_repo_list_commands)" -- "${current}")
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
start)
|
|
||||||
if [[ ${COMP_CWORD} -gt 2 ]]; then
|
|
||||||
COMPREPLY=(
|
|
||||||
$(compgen -W "$(__complete_repo_list_projects)" -- "${current}")
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user