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