From 95d5f2c641d698b479dc8817ed1a85dcbc965fb6 Mon Sep 17 00:00:00 2001
From: Manfred Touron <m@42.am>
Date: Thu, 13 Nov 2014 18:59:04 +0100
Subject: [PATCH] [boot2docker plugin] Initial version

---
 plugins/boot2docker/README.md    |  6 +++
 plugins/boot2docker/_boot2docker | 70 ++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 plugins/boot2docker/README.md
 create mode 100644 plugins/boot2docker/_boot2docker

diff --git a/plugins/boot2docker/README.md b/plugins/boot2docker/README.md
new file mode 100644
index 000000000..9551e2351
--- /dev/null
+++ b/plugins/boot2docker/README.md
@@ -0,0 +1,6 @@
+## Boot2docker autocomplete plugin
+
+- Adds autocomplete options for all boot2docker commands.
+
+
+Maintainer : Manfred Touron ([@moul](https://github.com/moul))
diff --git a/plugins/boot2docker/_boot2docker b/plugins/boot2docker/_boot2docker
new file mode 100644
index 000000000..baa08b26d
--- /dev/null
+++ b/plugins/boot2docker/_boot2docker
@@ -0,0 +1,70 @@
+#compdef boot2docker
+
+# Boot2docker autocompletion for oh-my-zsh
+# Requires: Boot2docker installed
+# Author: Manfred Touron (@moul)
+
+local -a _1st_arguments
+_1st_arguments=(
+   "init":"Create a new Boot2Docker VM."
+   "up":"Start VM from any states."
+   "start":"Start VM from any states."
+   "boot":"Start VM from any states."
+   "ssh":"[ssh-command] Login to VM via SSH."
+   "save":"Suspend VM and save state to disk."
+   "suspend":"Suspend VM and save state to disk."
+   "down":"Gracefully shutdown the VM."
+   "stop":"Gracefully shutdown the VM."
+   "halt":"Gracefully shutdown the VM."
+   "restart":"Gracefully reboot the VM."
+   "poweroff":"Forcefully power off the VM (may corrupt disk image)."
+   "reset":"Forcefully power cycle the VM (may corrupt disk image)."
+   "delete":"Delete Boot2Docker VM and its disk image."
+   "destroy":"Delete Boot2Docker VM and its disk image."
+   "config":"Show selected profile file settings."
+   "cfg":"Show selected profile file settings."
+   "info":"Display detailed information of VM."
+   "ip":"Display the IP address of the VM's Host-only network."
+   "socket":"Display the DOCKER_HOST socket to connect to."
+   "shellinit":"Display the shell command to set up the Docker client."
+   "status":"Display current state of VM."
+   "download":"Download Boot2Docker ISO image."
+   "upgrade":"Upgrade the Boot2Docker ISO image (restart if running)."
+   "version":"Display version information."
+)
+
+_arguments \
+  '(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \
+  '(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \
+  '(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \
+  '(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \
+  '(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \
+  '(--driver)--driver[hypervisor driver.]' \
+  '(--hostip)--hostip[VirtualBox host-only network IP address.]' \
+  '(--iso)--iso[path to boot2docker ISO image.]' \
+  '(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \
+  '(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \
+  '(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \
+  '(--netmask)--netmask[VirtualBox host-only network mask.]' \
+  '(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \
+  '(--retries)--retries[number of port knocking retries during 'start']' \
+  '(--serial)--serial[try serial console to get IP address (experimental)]' \
+  '(--serialfile)--serialfile[path to the serial socket/pipe.]' \
+  '(--ssh)--ssh[path to SSH client utility.]' \
+  '(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \
+  '(--sshkey)--sshkey[path to SSH key to use.]' \
+  '(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \
+  '(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \
+  '(--vbm)--vbm[path to VirtualBox management utility.]' \
+  '(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \
+  '(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \
+  '(--vm)--vm[virtual machine name.]' \
+  '(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \
+  '*:: :->subcmds' && return 0
+
+#_arguments '*:: :->command'
+
+if (( CURRENT == 1 )); then
+    _describe -t commands "boot2docker command" _1st_arguments
+    return
+fi