Chromium Code Reviews| Index: git_cl_completion.sh | 
| diff --git a/git_cl_completion.sh b/git_cl_completion.sh | 
| new file mode 100755 | 
| index 0000000000000000000000000000000000000000..54079ccdb26f68649ac97782d3c1127bb8027e64 | 
| --- /dev/null | 
| +++ b/git_cl_completion.sh | 
| @@ -0,0 +1,34 @@ | 
| +# Copyright (c) 2016 The Chromium Authors. All rights reserved. | 
| +# Use of this source code is governed by a BSD-style license that can be | 
| +# found in the LICENSE file. | 
| + | 
| + | 
| +# This adds completion to bash shells for git cl 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: | 
| +# Installed git bash completion. | 
| +# | 
| +# Usage: | 
| +# Put something like the following in your .bashrc: | 
| +# . $PATH_TO_DEPOT_TOOLS/git cl_completion.sh | 
| +# | 
| + | 
| + | 
| +# Parses commands from git cl -h. | 
| +__git_cl_commands () { | 
| + git cl -h 2> /dev/null | sed -n 's/^\s*\x1b\[32m\(.*\)\x1b\[39m.*$/\1/p' | 
| 
 
M-A Ruel
2016/08/22 19:18:02
lol at ascii parsing
that's sooo brittle
 
 | 
| +} | 
| + | 
| +# Caches variables in __git_cl_all_commands. | 
| +__git_cl_compute_all_commands () { | 
| + test -n "$__git_cl_all_commands" || | 
| + __git_cl_all_commands="$(__git_cl_commands)" | 
| +} | 
| + | 
| +_git_cl () { | 
| + __git_cl_compute_all_commands | 
| + __gitcomp_nl "$(__git_cl_commands)" | 
| +} |