1 Star 2 Fork 0

Ocean/depot_tools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
gclient_completion.sh 2.27 KB
一键复制 编辑 原始数据 按行查看 历史
# gclient_completion.sh
#
# This adds completion to bash shells for gclient commands. It is
# meant for developers and not needed for inclusion by any automated
# processes that will, of course, specify the full command, not rely
# on or benefit from tab-completion.
#
# Requires:
# bash-completion package for _get_comp_words_by_ref.
# newer versions of sed for the improved regular expression handling.
#
# On Mac, this is accomplished by installing fink (www.finkproject.org)
# then doing sudo apt-get update ; sudo apt-get install sed
#
# Usage:
# Put something like the following in your .bashrc:
# . $PATH_TO_DEPOT_TOOLS/gclient_completion.sh
#
# Parses commands from gclient -h.
__gclient_commands () {
gclient -h 2> /dev/null | sed -n 's/^\s*\x1b\[32m\(.*\)\x1b\[39m.*$/\1/p'
}
# Caches variables in __gclient_all_commands.
# Adds "update" command, which is not listed.
__gclient_compute_all_commands () {
test -n "$__gclient_all_commands" ||
__gclient_all_commands="$(__gclient_commands) update"
}
# Since gclient fetch is a passthrough to git, let the completions
# come from git's completion if it's defined.
if [[ -n _git_fetch ]]; then
_gclient_fetch=_git_fetch
fi
# Completion callback for gclient cmdlines.
_gclient () {
local cur prev words cword
_get_comp_words_by_ref -n =: cur prev words cword
# Find the command by ignoring flags.
local i c=1 cword_adjust=0 command
while [ $c -lt $cword ]; do
i="${words[$c]}"
case "$i" in
-*)
((cword_adjust++))
: ignore options ;;
*) command="$i"; break ;;
esac
((c++))
done
# If there is a completion function for the command, use it and
# return.
local completion_func="_gclient_${command//-/_}"
local -f $completion_func >/dev/null && $completion_func && return
# If the command or hasn't been given, provide completions for all
# commands. Also provide all commands as completion for the help
# command.
# echo "command=$command" >> /tmp/comp.log
case "$command" in
""|help)
if [[ "$command" != help || $((cword - cword_adjust)) -le 2 ]]; then
__gclient_compute_all_commands
COMPREPLY=($(compgen -W "$__gclient_all_commands" $cur))
fi
;;
*) : just use the default ;;
esac
} &&
complete -F _gclient -o default gclient
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/oceanho/depot_tools.git
git@gitee.com:oceanho/depot_tools.git
oceanho
depot_tools
depot_tools
master

搜索帮助