summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-16 20:05:49 +0000
committerGerrit Code Review <review@openstack.org>2013-07-16 20:05:49 +0000
commitda711d56d2f51cd863c061076676dc841e0b0b07 (patch)
tree4bfe4812878ade40b0e14fbb37330fb6a2aafe70 /tools
parent74506b83fedf72de90fd56bb7a978676700e7180 (diff)
parent2770e059e9b5a3b36298b701e12827aea183acfd (diff)
downloadpython-novaclient-da711d56d2f51cd863c061076676dc841e0b0b07.tar.gz
Merge "Adds zsh completion"
Diffstat (limited to 'tools')
-rw-r--r--tools/nova.zsh_completion29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/nova.zsh_completion b/tools/nova.zsh_completion
new file mode 100644
index 00000000..43c4d649
--- /dev/null
+++ b/tools/nova.zsh_completion
@@ -0,0 +1,29 @@
+#compdef nova
+
+local -a nbc _nova_opts _nova_flags _nova_opts_exp cur prev
+
+nbc=(${(ps: :)$(_call_program options "$service bash-completion" 2>/dev/null)})
+_nova_opts=(${nbc:#-*})
+_nova_flags=(${(M)nbc:#-*})
+_nova_opt_exp=${${nbc:#-*}// /|}
+cur=$words[CURRENT]
+prev=$words[(( CURRENT - 1 ))]
+
+_checkcomp(){
+ for word in $words[@]; do
+ if [[ -n ${_nova_opts[(r)$word]} ]]; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+echo $_nova_opts[@] |grep --color nova
+if [[ "$prev" != "help" ]] && _checkcomp; then
+ COMPLETION_CACHE=(~/.novaclient/*/*-cache)
+ cflags=($_nova_flags[@] ${(ps: :)$(cat $COMPLETION_CACHE 2>/dev/null)})
+ compadd "$@" -d $cflags[@]
+else
+ compadd "$@" -d $_nova_opts[@]
+fi
+