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)" |
| +} |