diff options
| author | Robby Russell <robby@planetargon.com> | 2010-11-19 10:41:11 -0800 | 
|---|---|---|
| committer | Robby Russell <robby@planetargon.com> | 2010-11-19 10:41:11 -0800 | 
| commit | 580eda4dcae7332669677974526c670e896a08a1 (patch) | |
| tree | e00bd41e2e34d633e86f2dc180797a032144a39a /plugins/vagrant/_vagrant | |
| parent | 9db8042c465faec4bc9ff591fe02e50694ab5c08 (diff) | |
| parent | 6dbfdd9e31cefcb9510edf5e526cf572cbcfa776 (diff) | |
| download | zsh-580eda4dcae7332669677974526c670e896a08a1.tar.gz zsh-580eda4dcae7332669677974526c670e896a08a1.tar.bz2 zsh-580eda4dcae7332669677974526c670e896a08a1.zip | |
Merge branch 'master' of https://github.com/FedyashevNikita/oh-my-zsh into FedyashevNikita-master
Diffstat (limited to 'plugins/vagrant/_vagrant')
| -rw-r--r-- | plugins/vagrant/_vagrant | 104 | 
1 files changed, 104 insertions, 0 deletions
| diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant new file mode 100644 index 000000000..483b29c53 --- /dev/null +++ b/plugins/vagrant/_vagrant @@ -0,0 +1,104 @@ +#compdef vagrant  +#autoload + +# vagrant zsh completion + +local -a _1st_arguments +_1st_arguments=( +    'box:Box commands' +    'destroy:Destroys the vagrant environment' +    'halt:Halts the currently running vagrant environment' +    'help:[TASK] Describe available tasks or one specific task' +    'init:[box_name] [box_url] Initializes current folder for Vagrant usage' +    'package:Packages a vagrant environment for distribution' +    'provision:Run the provisioner' +    'reload:Reload the vagrant environment' +    'resume:Resumes a suspend vagrant environment' +    'ssh:SSH into the currently running environment' +    'ssh_config:outputs .ssh/config valid syntax for connecting to this environment via ssh.' +    'status:Shows the status of the current Vagrant environment.' +    'suspend:Suspends the currently running vagrant environment' +    'up:Creates the vagrant environment' +    'version:Prints the Vagrant version information' +) + +local -a _box_arguments +_box_arguments=( +    'add:NAME URI Add a box to the system' +    'help:COMMAND Describe subcommands or one specific subcommand' +    'list:Lists all installed boxes' +    'remove:NAME Remove a box from the system' +    'repackage:NAME Repackage an installed box into a `.box` file.' +) + +__task_list () +{ +    local expl +    declare -a tasks + +    tasks=(box destroy halt init package provision reload resume ssh ssh_config status suspend up version) + +    _wanted tasks expl 'help' compadd $tasks +} + +__box_list () +{ +    _wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g') +} + +__vagrant-box () +{ +    local curcontext="$curcontext" state line +    typeset -A opt_args + +    _arguments -C \ +        ':command:->command' \ +        '*::options:->options' + +   case $state in +       (command) +           _describe -t commands "gem subcommand" _box_arguments +           return +       ;; + +       (options) +           case $line[1] in +               (repackage|remove) +                   _arguments ':feature:__box_list'  +               ;; +           esac +       ;; +    esac +} + + + + +local expl +local -a boxes installed_boxes + +local curcontext="$curcontext" state line +typeset -A opt_args + +_arguments -C \ +    ':command:->command' \ +    '*::options:->options' + +case $state in +  (command) +      _describe -t commands "gem subcommand" _1st_arguments +      return +  ;; + +  (options) +    case $line[1] in +      (help) +         _arguments ':feature:__task_list'  +      ;; + +      (box) +          __vagrant-box +      ;; +    esac +  ;; +esac | 
