diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-07-16 20:05:49 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-07-16 20:05:49 +0000 |
commit | da711d56d2f51cd863c061076676dc841e0b0b07 (patch) | |
tree | 4bfe4812878ade40b0e14fbb37330fb6a2aafe70 | |
parent | 74506b83fedf72de90fd56bb7a978676700e7180 (diff) | |
parent | 2770e059e9b5a3b36298b701e12827aea183acfd (diff) | |
download | python-novaclient-da711d56d2f51cd863c061076676dc841e0b0b07.tar.gz |
Merge "Adds zsh completion"
-rw-r--r-- | tools/nova.zsh_completion | 29 |
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 + |