summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/vagrant
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
commitaf120ab348f2e1a5a39dec035ed9dcf84189a64e (patch)
tree2a3aadd7ce1b7b771dfe3fe7c983569726c8d7ed /zsh/oh-my-zsh/plugins/vagrant
downloaddotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.gz
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.bz2
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.zip
dotfiles
Diffstat (limited to 'zsh/oh-my-zsh/plugins/vagrant')
-rw-r--r--zsh/oh-my-zsh/plugins/vagrant/README.md40
-rw-r--r--zsh/oh-my-zsh/plugins/vagrant/_vagrant133
-rw-r--r--zsh/oh-my-zsh/plugins/vagrant/vagrant.plugin.zsh33
3 files changed, 206 insertions, 0 deletions
diff --git a/zsh/oh-my-zsh/plugins/vagrant/README.md b/zsh/oh-my-zsh/plugins/vagrant/README.md
new file mode 100644
index 0000000..331bfa1
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/vagrant/README.md
@@ -0,0 +1,40 @@
+# Vagrant plugin
+
+This plugin adds autocompletion for [Vagrant](https://www.vagrantup.com/) commands, task names, box names and built-in handy documentation.
+
+To use it, add `vagrant` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... vagrant)
+```
+
+## Aliases
+
+| Alias | Command |
+|---------|------------------------------|
+| `vgi` | `vagrant init` |
+| `vup` | `vagrant up` |
+| `vd` | `vagrant destroy` |
+| `vdf` | `vagrant destroy -f` |
+| `vssh` | `vagrant ssh` |
+| `vsshc` | `vagrant ssh-config` |
+| `vrdp` | `vagrant rdp` |
+| `vh` | `vagrant halt` |
+| `vssp` | `vagrant suspend` |
+| `vst` | `vagrant status` |
+| `vre` | `vagrant resume` |
+| `vgs` | `vagrant global-status` |
+| `vpr` | `vagrant provision` |
+| `vr` | `vagrant reload` |
+| `vrp` | `vagrant reload --provision` |
+| `vp` | `vagrant push` |
+| `vsh` | `vagrant share` |
+| `vba` | `vagrant box add` |
+| `vbr` | `vagrant box remove` |
+| `vbl` | `vagrant box list` |
+| `vbo` | `vagrant box outdated` |
+| `vbu` | `vagrant box update` |
+| `vpli` | `vagrant plugin install` |
+| `vpll` | `vagrant plugin list` |
+| `vplun` | `vagrant plugin uninstall` |
+| `vplu` | `vagrant plugin update` |
diff --git a/zsh/oh-my-zsh/plugins/vagrant/_vagrant b/zsh/oh-my-zsh/plugins/vagrant/_vagrant
new file mode 100644
index 0000000..e888355
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/vagrant/_vagrant
@@ -0,0 +1,133 @@
+#compdef vagrant
+#autoload
+
+# vagrant zsh completion
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'box:Box commands'
+ 'cloud:Manages everything related to Vagrant Cloud'
+ 'connect:Connects to a remotely shared Vagrant environment'
+ 'destroy:Destroys the vagrant environment'
+ 'docker-logs:Outputs the logs from the Docker container'
+ 'docker-run:Run a one-off command in the context of a container'
+ 'global-status:Reports the status of all active Vagrant environments on the system'
+ 'halt:Halts the currently running vagrant environment'
+ 'help:Shows the help for a subcommand'
+ 'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
+ 'list-commands:Outputs all available Vagrant subcommands, even non-primary ones'
+ 'login:Authenticates against a Vagrant Cloud server to access protected boxes'
+ 'package:Packages a vagrant environment for distribution'
+ 'plugin:Plugin commands'
+ 'port:Displays information about guest port mappings'
+ 'provision:Run the provisioner'
+ 'push:Deploys code in this environment to a configured destination'
+ 'rdp:Connects to machine via RDP'
+ 'reload:Reload the vagrant environment'
+ 'resume:Resumes a suspended vagrant environment'
+ 'rsync:Syncs rsync synced folders to remote machine'
+ 'rsync-auto:Syncs rsync synced folders automatically when files change'
+ 'share:Shares your Vagrant environment with anyone in the world'
+ 'snapshot:Manage snapshots with the guest machine'
+ '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'
+ 'snapshot:Used to manage snapshots with the guest machine'
+ 'up:Creates the vagrant environment'
+ 'validate:Validates the Vagrantfile'
+ 'version:Prints current and latest Vagrant version'
+ '--help:[TASK] Describe available tasks or one specific task'
+ '--version:Prints the Vagrant version information'
+)
+
+local -a _box_arguments
+_box_arguments=(
+ 'add:ADDRESS Adds a box to the system'
+ 'help:COMMAND List subcommands'
+ 'list:Lists all installed boxes'
+ 'outdated:Checks if a box has newer version'
+ 'remove:NAME Removes a box from the system'
+ 'repackage:NAME PROVIDER VERSION Repackages an installed box into a `.box` file'
+ 'update:Updates box to a newer version, if available'
+)
+
+__task_list ()
+{
+ local expl
+ declare -a tasks
+
+ tasks=(box destroy halt init package port provision reload resume ssh ssh_config status suspend up version)
+
+ _wanted tasks expl 'help' compadd $tasks
+}
+
+__box_list ()
+{
+ _wanted application expl 'command' compadd $(command vagrant box list | sed -e 's/ *(.*)//g;s/ /\\ /g')
+}
+
+__vm_list ()
+{
+ _wanted application expl 'command' compadd $(command grep "${VAGRANT_CWD:-.}/Vagrantfile" -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9\._-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}')
+ _wanted application expl 'command' compadd $(command ls "${VAGRANT_CWD:-.}/.vagrant/machines/" 2>/dev/null)
+}
+
+__vagrant-box ()
+{
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ _describe -t commands "vagrant 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 "vagrant subcommand" _1st_arguments
+ return
+ ;;
+
+ (options)
+ case $line[1] in
+ (help)
+ _arguments ':feature:__task_list'
+ ;;
+
+ (box)
+ __vagrant-box
+ ;;
+ (up|provision|port|package|destroy|reload|ssh|ssh-config|halt|resume|status)
+ _arguments ':feature:__vm_list'
+ esac
+ ;;
+esac
diff --git a/zsh/oh-my-zsh/plugins/vagrant/vagrant.plugin.zsh b/zsh/oh-my-zsh/plugins/vagrant/vagrant.plugin.zsh
new file mode 100644
index 0000000..a4e9b06
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/vagrant/vagrant.plugin.zsh
@@ -0,0 +1,33 @@
+alias vgi="vagrant init"
+
+alias vup="vagrant up"
+alias vd="vagrant destroy"
+alias vdf="vagrant destroy -f"
+
+alias vssh="vagrant ssh"
+alias vsshc="vagrant ssh-config"
+alias vrdp="vagrant rdp"
+
+alias vh="vagrant halt"
+alias vssp="vagrant suspend"
+alias vst="vagrant status"
+alias vre="vagrant resume"
+alias vgs="vagrant global-status"
+
+alias vpr="vagrant provision"
+alias vr="vagrant reload"
+alias vrp="vagrant reload --provision"
+
+alias vp="vagrant push"
+alias vsh="vagrant share"
+
+alias vba="vagrant box add"
+alias vbr="vagrant box remove"
+alias vbl="vagrant box list"
+alias vbo="vagrant box outdated"
+alias vbu="vagrant box update"
+
+alias vpli="vagrant plugin install"
+alias vpll="vagrant plugin list"
+alias vplun="vagrant plugin uninstall"
+alias vplu="vagrant plugin update"