vagrant-unbundled 2.2.6.2 → 2.2.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (287) hide show
  1. checksums.yaml +4 -4
  2. data/.hashibot.hcl +14 -0
  3. data/CHANGELOG.md +213 -2
  4. data/Gemfile +1 -1
  5. data/README.md +9 -51
  6. data/RELEASE.md +1 -1
  7. data/bin/vagrant +23 -0
  8. data/contrib/README.md +1 -0
  9. data/contrib/bash/completion.sh +13 -1
  10. data/contrib/sudoers/linux-suse +2 -2
  11. data/contrib/zsh/_vagrant +738 -0
  12. data/contrib/zsh/generate_zsh_completion.rb +165 -0
  13. data/lib/vagrant.rb +25 -4
  14. data/lib/vagrant/action.rb +8 -0
  15. data/lib/vagrant/action/builder.rb +184 -38
  16. data/lib/vagrant/action/builtin/box_add.rb +20 -8
  17. data/lib/vagrant/action/builtin/box_check_outdated.rb +12 -15
  18. data/lib/vagrant/action/builtin/cleanup_disks.rb +56 -0
  19. data/lib/vagrant/action/builtin/cloud_init_setup.rb +122 -0
  20. data/lib/vagrant/action/builtin/cloud_init_wait.rb +30 -0
  21. data/lib/vagrant/action/builtin/delayed.rb +26 -0
  22. data/lib/vagrant/action/builtin/disk.rb +52 -0
  23. data/lib/vagrant/action/builtin/handle_box.rb +3 -1
  24. data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +28 -9
  25. data/lib/vagrant/action/builtin/has_provisioner.rb +36 -0
  26. data/lib/vagrant/action/builtin/mixin_provisioners.rb +20 -1
  27. data/lib/vagrant/action/builtin/mixin_synced_folders.rb +20 -21
  28. data/lib/vagrant/action/builtin/set_hostname.rb +5 -1
  29. data/lib/vagrant/action/builtin/ssh_run.rb +21 -3
  30. data/lib/vagrant/action/builtin/synced_folders.rb +16 -0
  31. data/lib/vagrant/action/builtin/trigger.rb +37 -0
  32. data/lib/vagrant/action/hook.rb +76 -23
  33. data/lib/vagrant/action/runner.rb +12 -27
  34. data/lib/vagrant/action/warden.rb +28 -22
  35. data/lib/vagrant/box.rb +11 -4
  36. data/lib/vagrant/box_collection.rb +1 -1
  37. data/lib/vagrant/box_metadata.rb +17 -3
  38. data/lib/vagrant/bundler.rb +298 -59
  39. data/lib/vagrant/cli.rb +4 -2
  40. data/lib/vagrant/errors.rb +61 -1
  41. data/lib/vagrant/machine.rb +64 -11
  42. data/lib/vagrant/machine_index.rb +28 -1
  43. data/lib/vagrant/plugin/manager.rb +25 -14
  44. data/lib/vagrant/plugin/v2/command.rb +7 -2
  45. data/lib/vagrant/plugin/v2/components.rb +6 -0
  46. data/lib/vagrant/plugin/v2/manager.rb +67 -0
  47. data/lib/vagrant/plugin/v2/plugin.rb +13 -0
  48. data/lib/vagrant/plugin/v2/synced_folder.rb +50 -0
  49. data/lib/vagrant/plugin/v2/trigger.rb +64 -25
  50. data/lib/vagrant/shared_helpers.rb +36 -0
  51. data/lib/vagrant/ui.rb +51 -5
  52. data/lib/vagrant/util.rb +1 -0
  53. data/lib/vagrant/util/ansi_escape_code_remover.rb +1 -1
  54. data/lib/vagrant/util/caps.rb +48 -0
  55. data/lib/vagrant/util/credential_scrubber.rb +1 -1
  56. data/lib/vagrant/util/curl_helper.rb +8 -5
  57. data/lib/vagrant/util/directory.rb +19 -0
  58. data/lib/vagrant/util/downloader.rb +10 -5
  59. data/lib/vagrant/util/file_checksum.rb +6 -2
  60. data/lib/vagrant/util/guest_hosts.rb +68 -0
  61. data/lib/vagrant/util/guest_inspection.rb +9 -1
  62. data/lib/vagrant/util/install_cli_autocomplete.rb +118 -0
  63. data/lib/vagrant/util/io.rb +7 -27
  64. data/lib/vagrant/util/ipv4_interfaces.rb +15 -0
  65. data/lib/vagrant/util/is_port_open.rb +8 -20
  66. data/lib/vagrant/util/map_command_options.rb +33 -0
  67. data/lib/vagrant/util/mime.rb +92 -0
  68. data/lib/vagrant/util/network_ip.rb +11 -1
  69. data/lib/vagrant/util/numeric.rb +69 -0
  70. data/lib/vagrant/util/platform.rb +10 -2
  71. data/lib/vagrant/util/powershell.rb +1 -1
  72. data/lib/vagrant/util/subprocess.rb +9 -1
  73. data/lib/vagrant/util/template_renderer.rb +2 -2
  74. data/lib/vagrant/util/uploader.rb +7 -4
  75. data/lib/vagrant/vagrantfile.rb +1 -1
  76. data/plugins/commands/autocomplete/command/install.rb +49 -0
  77. data/plugins/commands/autocomplete/command/root.rb +64 -0
  78. data/plugins/commands/autocomplete/plugin.rb +18 -0
  79. data/plugins/commands/box/command/outdated.rb +14 -2
  80. data/plugins/commands/cap/command.rb +5 -1
  81. data/plugins/commands/cloud/auth/login.rb +20 -23
  82. data/plugins/commands/cloud/auth/logout.rb +2 -10
  83. data/plugins/commands/cloud/auth/middleware/add_downloader_authentication.rb +57 -0
  84. data/plugins/commands/cloud/auth/whoami.rb +18 -20
  85. data/plugins/commands/cloud/box/create.rb +33 -29
  86. data/plugins/commands/cloud/box/delete.rb +30 -24
  87. data/plugins/commands/cloud/box/show.rb +41 -31
  88. data/plugins/commands/cloud/box/update.rb +34 -26
  89. data/plugins/commands/cloud/client/client.rb +50 -81
  90. data/plugins/commands/cloud/list.rb +3 -4
  91. data/plugins/commands/cloud/locales/en.yml +10 -10
  92. data/plugins/commands/cloud/plugin.rb +10 -0
  93. data/plugins/commands/cloud/provider/create.rb +38 -28
  94. data/plugins/commands/cloud/provider/delete.rb +39 -29
  95. data/plugins/commands/cloud/provider/update.rb +37 -28
  96. data/plugins/commands/cloud/provider/upload.rb +44 -34
  97. data/plugins/commands/cloud/publish.rb +185 -108
  98. data/plugins/commands/cloud/search.rb +34 -21
  99. data/plugins/commands/cloud/util.rb +266 -162
  100. data/plugins/commands/cloud/version/create.rb +33 -28
  101. data/plugins/commands/cloud/version/delete.rb +35 -28
  102. data/plugins/commands/cloud/version/release.rb +35 -29
  103. data/plugins/commands/cloud/version/revoke.rb +36 -29
  104. data/plugins/commands/cloud/version/update.rb +29 -25
  105. data/plugins/commands/destroy/command.rb +6 -2
  106. data/plugins/commands/login/plugin.rb +0 -13
  107. data/plugins/commands/snapshot/command/save.rb +13 -8
  108. data/plugins/commands/ssh_config/command.rb +1 -1
  109. data/plugins/communicators/ssh/communicator.rb +25 -24
  110. data/plugins/communicators/winrm/config.rb +1 -1
  111. data/plugins/communicators/winrm/helper.rb +1 -1
  112. data/plugins/communicators/winrm/shell.rb +1 -1
  113. data/plugins/communicators/winssh/communicator.rb +126 -38
  114. data/plugins/communicators/winssh/config.rb +3 -7
  115. data/plugins/guests/alpine/cap/change_host_name.rb +10 -11
  116. data/plugins/guests/alpine/cap/rsync.rb +1 -1
  117. data/plugins/guests/alpine/plugin.rb +16 -0
  118. data/plugins/guests/alt/cap/change_host_name.rb +40 -53
  119. data/plugins/guests/arch/cap/change_host_name.rb +5 -14
  120. data/plugins/guests/arch/cap/configure_networks.rb +27 -10
  121. data/plugins/guests/arch/cap/smb.rb +1 -1
  122. data/plugins/guests/atomic/cap/change_host_name.rb +5 -14
  123. data/plugins/guests/centos/cap/flavor.rb +24 -0
  124. data/plugins/guests/centos/guest.rb +9 -0
  125. data/plugins/guests/centos/plugin.rb +20 -0
  126. data/plugins/guests/darwin/cap/change_host_name.rb +10 -6
  127. data/plugins/guests/darwin/cap/darwin_version.rb +40 -0
  128. data/plugins/guests/darwin/cap/mount_smb_shared_folder.rb +1 -1
  129. data/plugins/guests/darwin/cap/mount_vmware_shared_folder.rb +109 -13
  130. data/plugins/guests/darwin/plugin.rb +15 -0
  131. data/plugins/guests/debian/cap/change_host_name.rb +12 -11
  132. data/plugins/guests/debian/cap/configure_networks.rb +14 -6
  133. data/plugins/guests/esxi/cap/public_key.rb +3 -1
  134. data/plugins/guests/freebsd/cap/change_host_name.rb +10 -6
  135. data/plugins/guests/gentoo/cap/change_host_name.rb +14 -22
  136. data/plugins/guests/haiku/cap/rsync.rb +19 -0
  137. data/plugins/guests/haiku/plugin.rb +15 -0
  138. data/plugins/guests/linux/cap/change_host_name.rb +46 -0
  139. data/plugins/guests/linux/cap/halt.rb +9 -1
  140. data/plugins/guests/linux/cap/mount_smb_shared_folder.rb +25 -34
  141. data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +10 -11
  142. data/plugins/guests/linux/cap/persist_mount_shared_folder.rb +75 -0
  143. data/plugins/guests/linux/cap/reboot.rb +53 -0
  144. data/plugins/guests/linux/plugin.rb +20 -0
  145. data/plugins/guests/omnios/cap/change_host_name.rb +10 -16
  146. data/plugins/guests/openbsd/cap/change_host_name.rb +10 -6
  147. data/plugins/guests/photon/cap/change_host_name.rb +9 -15
  148. data/plugins/guests/pld/cap/change_host_name.rb +11 -17
  149. data/plugins/guests/redhat/cap/change_host_name.rb +14 -5
  150. data/plugins/guests/redhat/cap/flavor.rb +3 -1
  151. data/plugins/guests/redhat/cap/nfs_client.rb +2 -2
  152. data/plugins/guests/redhat/cap/smb.rb +20 -0
  153. data/plugins/guests/redhat/plugin.rb +5 -0
  154. data/plugins/guests/slackware/cap/change_host_name.rb +11 -17
  155. data/plugins/guests/solaris11/plugin.rb +5 -0
  156. data/plugins/guests/suse/cap/change_host_name.rb +31 -9
  157. data/plugins/guests/windows/cap/public_key.rb +3 -3
  158. data/plugins/guests/windows/cap/reboot.rb +10 -5
  159. data/plugins/hosts/darwin/cap/fs_iso.rb +49 -0
  160. data/plugins/hosts/darwin/cap/nfs.rb +11 -0
  161. data/plugins/hosts/darwin/plugin.rb +15 -0
  162. data/plugins/hosts/linux/cap/fs_iso.rb +49 -0
  163. data/plugins/hosts/linux/cap/nfs.rb +21 -2
  164. data/plugins/hosts/linux/cap/rdp.rb +1 -1
  165. data/plugins/hosts/linux/plugin.rb +10 -0
  166. data/plugins/hosts/windows/cap/fs_iso.rb +48 -0
  167. data/plugins/hosts/windows/cap/rdp.rb +1 -1
  168. data/plugins/hosts/windows/plugin.rb +15 -0
  169. data/plugins/kernel_v2/config/cloud_init.rb +133 -0
  170. data/plugins/kernel_v2/config/disk.rb +221 -0
  171. data/plugins/kernel_v2/config/ssh_connect.rb +24 -0
  172. data/plugins/kernel_v2/config/vm.rb +230 -15
  173. data/plugins/kernel_v2/config/vm_provisioner.rb +17 -3
  174. data/plugins/kernel_v2/config/vm_trigger.rb +6 -5
  175. data/plugins/providers/docker/action.rb +8 -17
  176. data/plugins/providers/docker/action/forwarded_ports.rb +2 -0
  177. data/plugins/providers/docker/action/prepare_forwarded_port_collision_params.rb +61 -0
  178. data/plugins/providers/docker/cap/has_communicator.rb +11 -0
  179. data/plugins/providers/docker/communicator.rb +1 -1
  180. data/plugins/providers/docker/driver.rb +73 -10
  181. data/plugins/providers/docker/errors.rb +4 -0
  182. data/plugins/providers/docker/executor/local.rb +7 -1
  183. data/plugins/providers/docker/plugin.rb +5 -0
  184. data/plugins/providers/hyperv/action.rb +3 -1
  185. data/plugins/providers/hyperv/action/configure.rb +8 -0
  186. data/plugins/providers/hyperv/action/export.rb +4 -2
  187. data/plugins/providers/hyperv/cap/cleanup_disks.rb +54 -0
  188. data/plugins/providers/hyperv/cap/configure_disks.rb +200 -0
  189. data/plugins/providers/hyperv/cap/validate_disk_ext.rb +34 -0
  190. data/plugins/providers/hyperv/config.rb +5 -0
  191. data/plugins/providers/hyperv/driver.rb +90 -9
  192. data/plugins/providers/hyperv/plugin.rb +25 -0
  193. data/plugins/providers/hyperv/scripts/attach_disk_drive.ps1 +28 -0
  194. data/plugins/providers/hyperv/scripts/dismount_vhd.ps1 +13 -0
  195. data/plugins/providers/hyperv/scripts/get_vhd.ps1 +16 -0
  196. data/plugins/providers/hyperv/scripts/get_vm_status.ps1 +1 -1
  197. data/plugins/providers/hyperv/scripts/list_hdds.ps1 +17 -0
  198. data/plugins/providers/hyperv/scripts/new_vhd.ps1 +31 -0
  199. data/plugins/providers/hyperv/scripts/remove_disk_drive.ps1 +25 -0
  200. data/plugins/providers/hyperv/scripts/resize_disk_drive.ps1 +18 -0
  201. data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +24 -0
  202. data/plugins/providers/hyperv/scripts/set_vm_integration_services.ps1 +3 -3
  203. data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +14 -6
  204. data/plugins/providers/virtualbox/action.rb +14 -1
  205. data/plugins/providers/virtualbox/action/clean_machine_folder.rb +10 -1
  206. data/plugins/providers/virtualbox/action/export.rb +4 -2
  207. data/plugins/providers/virtualbox/action/forward_ports.rb +2 -2
  208. data/plugins/providers/virtualbox/action/import.rb +8 -4
  209. data/plugins/providers/virtualbox/action/prepare_clone_snapshot.rb +4 -2
  210. data/plugins/providers/virtualbox/action/snapshot_delete.rb +4 -2
  211. data/plugins/providers/virtualbox/action/snapshot_restore.rb +4 -2
  212. data/plugins/providers/virtualbox/cap/cleanup_disks.rb +85 -0
  213. data/plugins/providers/virtualbox/cap/configure_disks.rb +440 -0
  214. data/plugins/providers/virtualbox/cap/mount_options.rb +35 -0
  215. data/plugins/providers/virtualbox/cap/validate_disk_ext.rb +34 -0
  216. data/plugins/providers/virtualbox/driver/base.rb +15 -0
  217. data/plugins/providers/virtualbox/driver/meta.rb +17 -2
  218. data/plugins/providers/virtualbox/driver/version_5_0.rb +217 -2
  219. data/plugins/providers/virtualbox/driver/version_6_1.rb +39 -0
  220. data/plugins/providers/virtualbox/model/storage_controller.rb +135 -0
  221. data/plugins/providers/virtualbox/model/storage_controller_array.rb +98 -0
  222. data/plugins/providers/virtualbox/plugin.rb +38 -0
  223. data/plugins/providers/virtualbox/provider.rb +2 -1
  224. data/plugins/providers/virtualbox/synced_folder.rb +1 -0
  225. data/plugins/provisioners/ansible/cap/guest/alpine/ansible_install.rb +44 -0
  226. data/plugins/provisioners/ansible/cap/guest/arch/ansible_install.rb +20 -3
  227. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +4 -5
  228. data/plugins/provisioners/ansible/cap/guest/fedora/ansible_install.rb +2 -2
  229. data/plugins/provisioners/ansible/cap/guest/freebsd/ansible_install.rb +2 -2
  230. data/plugins/provisioners/ansible/cap/guest/pip/pip.rb +8 -4
  231. data/plugins/provisioners/ansible/cap/guest/redhat/ansible_install.rb +2 -2
  232. data/plugins/provisioners/ansible/cap/guest/suse/ansible_install.rb +2 -1
  233. data/plugins/provisioners/ansible/cap/guest/ubuntu/ansible_install.rb +3 -3
  234. data/plugins/provisioners/ansible/plugin.rb +5 -0
  235. data/plugins/provisioners/ansible/provisioner/base.rb +1 -1
  236. data/plugins/provisioners/container/client.rb +203 -0
  237. data/plugins/provisioners/container/config.rb +83 -0
  238. data/plugins/provisioners/container/installer.rb +13 -0
  239. data/plugins/provisioners/container/plugin.rb +23 -0
  240. data/plugins/provisioners/container/provisioner.rb +28 -0
  241. data/plugins/provisioners/docker/cap/{redhat → centos}/docker_install.rb +10 -7
  242. data/plugins/provisioners/docker/cap/centos/docker_start_service.rb +24 -0
  243. data/plugins/provisioners/docker/client.rb +4 -175
  244. data/plugins/provisioners/docker/config.rb +2 -72
  245. data/plugins/provisioners/docker/installer.rb +3 -5
  246. data/plugins/provisioners/docker/plugin.rb +6 -6
  247. data/plugins/provisioners/docker/provisioner.rb +4 -10
  248. data/plugins/provisioners/podman/cap/centos/podman_install.rb +35 -0
  249. data/plugins/provisioners/podman/cap/linux/podman_installed.rb +13 -0
  250. data/plugins/provisioners/podman/cap/redhat/podman_install.rb +26 -0
  251. data/plugins/provisioners/podman/client.rb +12 -0
  252. data/plugins/provisioners/podman/config.rb +28 -0
  253. data/plugins/provisioners/podman/installer.rb +33 -0
  254. data/plugins/provisioners/podman/plugin.rb +38 -0
  255. data/plugins/provisioners/podman/provisioner.rb +52 -0
  256. data/plugins/provisioners/salt/provisioner.rb +4 -0
  257. data/plugins/provisioners/shell/config.rb +1 -6
  258. data/plugins/provisioners/shell/provisioner.rb +61 -26
  259. data/plugins/synced_folders/nfs/synced_folder.rb +3 -1
  260. data/plugins/synced_folders/smb/cap/default_fstab_modification.rb +11 -0
  261. data/plugins/synced_folders/smb/cap/mount_options.rb +56 -0
  262. data/plugins/synced_folders/smb/plugin.rb +20 -0
  263. data/plugins/synced_folders/smb/synced_folder.rb +2 -2
  264. data/plugins/synced_folders/unix_mount_helpers.rb +14 -0
  265. data/scripts/website_push_www.sh +1 -1
  266. data/templates/commands/init/Vagrantfile.erb +1 -1
  267. data/templates/guests/arch/{network_dhcp.erb → default_network/network_dhcp.erb} +0 -0
  268. data/templates/guests/arch/{network_static.erb → default_network/network_static.erb} +0 -0
  269. data/templates/guests/arch/{network_static6.erb → default_network/network_static6.erb} +0 -0
  270. data/templates/guests/arch/systemd_networkd/network_dhcp.erb +6 -0
  271. data/templates/guests/arch/systemd_networkd/network_static.erb +9 -0
  272. data/templates/guests/arch/systemd_networkd/network_static6.erb +9 -0
  273. data/templates/guests/linux/etc_fstab.erb +6 -0
  274. data/templates/locales/en.yml +235 -6
  275. data/templates/locales/providers_docker.yml +6 -0
  276. data/templates/nfs/exports_darwin.erb +7 -0
  277. data/vagrant.gemspec +14 -15
  278. data/version.txt +1 -1
  279. metadata +3577 -3855
  280. data/lib/vagrant/action/builtin/after_trigger.rb +0 -31
  281. data/lib/vagrant/action/builtin/before_trigger.rb +0 -28
  282. data/plugins/commands/login/client.rb +0 -253
  283. data/plugins/commands/login/command.rb +0 -137
  284. data/plugins/commands/login/errors.rb +0 -24
  285. data/plugins/commands/login/locales/en.yml +0 -49
  286. data/plugins/provisioners/docker/cap/redhat/docker_start_service.rb +0 -16
  287. data/scripts/website_push_docs.sh +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bbf0332bbe6ca456380199ded15ef9328a2ebaa00f92ba7d112fb4c5b43bf15
4
- data.tar.gz: 5a524b4d511179f37c729faa12a9af27b622783a0298815e5527575f51a0e0ed
3
+ metadata.gz: 66676a3a6dbd082059b30ec7f0e605c435d33bc9854a2db0184457ba735939b0
4
+ data.tar.gz: 742ad824c94d7329205e98578cb6fcd4c6c756919e09966c9a83ea23a13fd32f
5
5
  SHA512:
6
- metadata.gz: fc695c903cb52ca50c9d50530c0d461164210608d2ffae6961a00d252606dbcf2b5cc4b8cc9124bad784b7e655b980939c694dfce6e8dbf2ef2ac9475fac77fd
7
- data.tar.gz: 9fabb62a9cdd8fb3070de6b6a0488e55216578725b802be4933f45dd65704a9564bc0885c4647abf7a3e6aac4a3f848d855702c735a3ba380c38c09b3dab658a
6
+ metadata.gz: 88acd31085bcda4390bc37d58078a2be3b6b16f09cd4605c34d9874cbd92ac2b73d36f5e8f9761b5d4396338555aae682baeeaf7603c46f9f6643277a5bfd330
7
+ data.tar.gz: d31c929eb5c9f55ee68e1d11b96704bb75193b2f8314edd1515e793a20338d2b650f05da038d4efa27802d0e5b5f193d9083b6b5a761dc4af02bb33830a9ee0a
@@ -0,0 +1,14 @@
1
+ poll "closed_issue_locker" "locker" {
2
+ schedule = "0 50 1 * * *"
3
+ closed_for = "720h" # 30 days
4
+ max_issues = 500
5
+ sleep_between_issues = "5s"
6
+
7
+ no_comment_if_no_activity_for = "4320h" # 180 days
8
+
9
+ message = <<-EOF
10
+ I'm going to lock this issue because it has been closed for _30 days_ ⏳. This helps our maintainers find and focus on the active issues.
11
+
12
+ If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.
13
+ EOF
14
+ }
@@ -1,3 +1,214 @@
1
+ ## 2.2.14 (November 20, 2020)
2
+
3
+ IMPROVEMENTS:
4
+
5
+ - host/windows: Update filesystem type matching on WSL2 [GH-12056]
6
+
7
+ BUG FIXES:
8
+
9
+ - core: Track raw actions as they are applied to prevent multiple insertions [GH-12037]
10
+ - core/bundler: Update solution file resolution to support prerelease matching [GH-12054]
11
+ - guest/darwin: Mount vmware synced folders for big sur guests [GH-12053]
12
+
13
+ ## 2.2.13 (November 06, 2020)
14
+
15
+ BUG FIXES:
16
+
17
+ - core/bundler: Adjust request sets properly with non-development prerelease [GH-12025]
18
+
19
+ ## 2.2.12 (November 06, 2020)
20
+
21
+ BUG FIXES:
22
+
23
+ - core/bundler: Automatically enable prerelease dependency resolution [GH-12023]
24
+
25
+ NOTE: This is a fix release to resolve an immediate issue with Vagrant
26
+ plugin functionality
27
+
28
+ ## 2.2.11 (November 05, 2020)
29
+
30
+ IMPROVEMENTS:
31
+
32
+ - command/cap: Add ability to specify target [GH-11965]
33
+ - command/cloud: Add --force flag to `version release` command [GH-11912]
34
+ - command/cloud: Updates to utilize the 3.0 version of vagrant_cloud [GH-11916]
35
+ - core: Switch from unmaintained gem erubis to erubi [GH-11893]
36
+ - core: Download Vagrant boxes using auth headers [GH-11835]
37
+ - core: Remove dependency on mime gem [GH-11857]
38
+ - core: Handle Errno::EALREADY exceptions on port check [GH-12008]
39
+ - core: Fix missing hook/trigger insertion into action stack [GH-12014]
40
+ - guest/linux: Make max reboot wait duration configurable [GH-12011]
41
+ - guest/windows: Make max reboot wait duration configurable [GH-12011]
42
+ - providers/virtualbox: Fix availability check of provider [GH-11936]
43
+ - tests: Add integration tests for Docker provider [GH-11907]
44
+
45
+ BUG FIXES:
46
+
47
+ - core/synced_folders: Don't persist synced folders to fstab if guest is not reachable [GH-11900]
48
+ - core: Don't try to recover machine without a uuid [GH-11863]
49
+ - config/disks: Transform provider specific config to common form [GH-11939]
50
+ - config/vm: Override synced-folder `:nfs` option [GH-11988]
51
+ - contrib/zsh: Remove newline from beginning of completion script [GH-11963]
52
+ - guests/arch: Install smbclient when setting up arch smb [GH-11923]
53
+ - guest/linux: Check for /etc/fstab before trying to modify [GH-11897]
54
+ - guest/linux: Create an /etc/fstab if does not exist [GH-11909]
55
+ - guest/linux: Persist SMB mounts [GH-11846]
56
+ - guest/debian: Set hostname in /etc/hosts as first step to changing hostname [GH-11885]
57
+ - guest/rhel: Check for existence of network files before trying to update them [GH-11877]
58
+ - guest/suse: Don't use hostnamectl to set hostname if not available on system [GH-11996]
59
+ - tests: Remove rsync dependency from tests [GH-11889]
60
+
61
+ ## 2.2.10 (August 24, 2020)
62
+
63
+ FEATURES:
64
+
65
+ - hyperv/disks: Add ability to manage virtual disks for guests [GH-11541]
66
+
67
+ IMPROVEMENTS:
68
+
69
+ - core: Allow provisioners to be run when a communicator is not available [GH-11579]
70
+ - core: Add `autocomplete` command that allows for install of bash or zsh autocomplete scripts [GH-11523]
71
+ - core: Update to childprocess gem to 4.0.0 [GH-11717]
72
+ - core: Add action to wait for cloud-init to finish running [GH-11773]
73
+ - core: Update to net-ssh to 6.0 and net-sftp to 3.0 [GH-11621]
74
+ - core: Optimize port in use check for faster validation [GH-11810]
75
+ - core: Support for Ruby 2.7 [GH-11814]
76
+ - core: Add synced folder capabilities for mount options and default fstab modification behavior [GH-11797]
77
+ - guest/arch: Use systemd-networkd to configure networking for guests [GH-11400]
78
+ - guest/haiku: Rsync install for rsync synced folders [GH-11614]
79
+ - guest/solaris11: Add guest capability shell_expand_guest_path [GH-11759]
80
+ - host/darwin: Add ability to build ISO [GH-11694]
81
+ - hosts/linux: Add ability to build ISO [GH-11750]
82
+ - hosts/windows: Add ability to build ISO [GH-11750]
83
+ - providers/hyperv: Add support for SecureBootTemplate setting on import [GH-11756]
84
+ - providers/hyperv: Add support for EnhancedSessionTransportType [GH-11014]
85
+ - virtualbox/disks: Add ability to manage virtual dvds for guests [GH-11613]
86
+
87
+ BUG FIXES:
88
+
89
+ - core: Ensure MapCommandOptions class is required [GH-11629]
90
+ - core: Fix `:all` special value on triggers [GH-11688]
91
+ - core: Ensure network addresses have a valid netmask [GH-11679]
92
+ - core: Recover local machine metadata in global index [GH-11656]
93
+ - core: Print CLI help message is ambiguous option provided [GH-11746]
94
+ - core: Update how `/etc/hosts` gets updated for darwin, freebsd and openbsd [GH-11719]
95
+ - core: Capture `[3J` escape sequence [GH-11807]
96
+ - core: Treat empty box value as invalid [GH-11618]
97
+ - core: Allow forwarding ports to unknown addresses [GH-11810]
98
+ - core: Scrub credentials as whole words [GH-11837]
99
+ - commands/destroy: Add gracefull option to switch beween gracefully or forcefully shutting down a vm [GH-11628]
100
+ - communicator/ssh: Raise an error for a nil exit status [GH-11721]
101
+ - communicator/winrm: Check for nil return from querying for forwarded ports [GH-11831]
102
+ - config/vm: Add option `allow_hosts_modification` to allow/disable Vagrant editing the guests `/etc/hosts` file [GH-11565]
103
+ - config/vm: Add config option `hostname` to `config.vm.network` [GH-11566]
104
+ - config/vm: Don't ignore NFS synced folders on Windows hosts [GH-11631]
105
+ - host: Use regular port check for loopback addresses [GH-11654]
106
+ - host: Allow windows and linux hosts to detach from rdp process [GH-11732]
107
+ - host/windows: Properly register SMB password validation capability [GH-11795]
108
+ - guests: Allow setting of hostname according to `hostname` option for multiple guests [GH-11704]
109
+ - guest/alpine: Allow setting of hostname according to `hostname` option [GH-11718]
110
+ - guest/esxi: Be more permissive with permissions of ssh directory [GH-11587]
111
+ - guest/linux: Add virtual box shared folders to guest fstab [GH-11570]
112
+ - guest/suse: Allow setting of hostname according to `hostname` option [GH-11567]
113
+ - providers/docker: Ensure new containers don't grab existing bound ports [GH-11602]
114
+ - providers/hyperv: Fix check for secure boot [GH-11809]
115
+ - providers/virtualbox: Fix inability to create disk with same name across multiple guests [GH-11767]
116
+ - provisioners/docker: Allow to specify docker image version using the `run` option [GH-11806]
117
+ - provisioners/file: Allow creating empty folders [GH-11805]
118
+ - provisioners/shell: Ensure Windows shell provisioner gets the correct file extension [GH-11644]
119
+ - util/powershell: Use correct powershell executable for privileged commands [GH-11787]
120
+
121
+ ## 2.2.9 (May 07, 2020)
122
+
123
+ BUG FIXES:
124
+
125
+ - core/bundler: Properly handle plugin install with available specification [GH-11592]
126
+ - provisioners/docker: Fix CentOS docker install and start service capabilities [GH-11581]
127
+ - provisioners/podman: Seperate RHEL install from CentOS install [GH-11584]
128
+
129
+ ## 2.2.8 (May 04, 2020)
130
+
131
+ FEATURES:
132
+
133
+ - virtualbox/disks: Add ability to manage virtual disks for guests [GH-11349]
134
+
135
+ IMPROVEMENTS:
136
+
137
+ - bin/vagrant: Automatically include global options within commands [GH-11473]
138
+ - bin/vagrant: Suppress Ruby warnings when not running pre-release version [GH-11446]
139
+ - communicator/ssh: Add support for configuring SSH connect timeout [GH-11533]
140
+ - core: Update childprocess gem [GH-11487]
141
+ - core: Add cli option `--no-tty` [GH-11414]
142
+ - core: Overhaul call stack modifications implementation for hooks and triggers [GH-11455]
143
+ - core/bundler: Cache plugin solution sets to speed up startup times [GH-11363]
144
+ - config/vm: Add`box_download_options` config to specify extra download options for a box [GH-11560]
145
+ - guest/alpine: Add ansible provisioner guest support [GH-11411]
146
+ - guest/linux: Update systemd? check to use sudo [GH-11398]
147
+ - guest/linux: Use systemd if available to halt and reboot system [GH-11407]
148
+ - guests/linux: Mount smb folders with `mfsymlinks` option by default [GH-11503]
149
+ - guest/redhat: Add support for SMB [GH-11463]
150
+ - guest/windows: Rescue all regular exceptions during reboot wait [GH-11428]
151
+ - providers/docker: Support catching container name when using podman [GH-11356]
152
+ - provisioners/docker: Support Centos8 [GH-11462]
153
+ - provisioners/podman: Add Podman as a provisioner [GH-11472]
154
+ - provisioners/salt: Allow specifying python_version [GH-11436]
155
+
156
+ BUG FIXES:
157
+
158
+ - communicators/winssh: Fix issues with Windows SSH communicator [GH-11430]
159
+ - core/bundler: Activate vagrant specification when not active [GH-11445]
160
+ - core/bundler: Properly resolve sets when Vagrant is in prerelease [GH-11571]
161
+ - core/downloader: Always set `-q` flag as first option [GH-11366]
162
+ - core/hooks: Update dynamic action hook implementation to prevent looping [GH-11427]
163
+ - core/synced_folders: Validate type option if set [GH-11359]
164
+ - guests/debian: Choose netplan renderer based on network configuration and installed tools [GH-11498]
165
+ - host/darwin: Quote directories in /etc/exports [GH-11441]
166
+ - host/linux: Ensure `/etc/exports` does not contain duplicate records [GH-10591]
167
+ - host/windows: Check all interfaces for port conflict when host_ip: "0.0.0.0" [GH-11454]
168
+ - providers/docker: Fix issue where Vagrant fails to remove image if it is in use [GH-11355]
169
+ - providers/docker: Fix issue with getting correct docker image id from build output [GH-11461]
170
+ - providers/hyperv: Prevent error when identity reference cannot be translated [GH-11425]
171
+ - provider/hyperv: Use service id for manipulating vm integration services [GH-11499]
172
+ - providers/virtualbox: Parse `list dhcpservers` output on VirtualBox 6.1 [GH-11404]
173
+ - providers/virtualbox: Raise an error if guest IP ends in .1 [GH-11500]
174
+ - provisioners/shell: Ensure windows shell provisioners always get an extension [GH-11517]
175
+ - util/io: Fix encoding conversion errors [GH-11571]
176
+
177
+ ## 2.2.7 (January 27, 2020)
178
+
179
+ IMPROVEMENTS:
180
+
181
+ - guest/opensuse: Check for basename hostname prior to setting hostname [GH-11170]
182
+ - host/linux: Check for modinfo in /sbin if it's not on PATH [GH-11178]
183
+ - core: Show guest name in hostname error message [GH-11175]
184
+ - provisioners/shell: Linux guests now support `reboot` option [GH-11194]
185
+ - darwin/nfs: Put each NFS export on its own line [GH-11216]
186
+ - contrib/bash: Add more completion flags to up command [GH-11223]
187
+ - provider/virtualbox: Add VirtualBox provider support for version 6.1.x [GH-11250]
188
+ - box/outdated: Allow to force check for box updates and ignore cached check [GH-11231]
189
+ - guest/alpine: Update apk cache when installing rsync [GH-11220]
190
+ - provider/virtualbox: Improve error message when machine folder is inaccessible [GH-11239]
191
+ - provisioner/ansible_local: Add pip install method for arch guests [GH-11265]
192
+ - communicators/winssh: Use Windows shell for `vagrant ssh -c` [GH-11258]
193
+
194
+ BUG FIXES:
195
+
196
+ - command/snapshot/save: Fix regression that prevented snapshot of all guests in environment [GH-11152]
197
+ - core: Update UI to properly retain newlines when adding prefix [GH-11126]
198
+ - core: Check if box update is available locally [GH-11188]
199
+ - core: Ensure Vagrant::Errors are loaded in file_checksum util [GH-11183]
200
+ - cloud/publish: Improve argument handling for missing arguments to command [GH-11184]
201
+ - core: Get latest version for current provider during outdated check [GH-11192]
202
+ - linux/nfs: avoid adding extra newlines to /etc/exports [GH-11201]
203
+ - guest/darwin: Fix VMware synced folders on APFS [GH-11267]
204
+ - guest/redhat: Ensure `nfs-server` is restarted when installing nfs client [GH-11212]
205
+ - core: Do not validate checksums if options are empty string [GH-11211]
206
+ - provider/docker: Enhance docker build method to match against buildkit output [GH-11205]
207
+ - provisioner/ansible_local: Don't prompt for input when installing Ansible on Ubuntu and Debian [GH-11191]
208
+ - provisioner/ansible_local: Ensure all guest caps accept all passed in arguments [GH-11265]
209
+ - host/windows: Fix regression that prevented port collisions from being detected [GH-11244]
210
+ - core/provisioner: Set top level provisioner name if set in a provisioner config [GH-11295]
211
+
1
212
  ## 2.2.6 (October 14, 2019)
2
213
 
3
214
  FEATURES:
@@ -13,7 +224,7 @@ IMPROVEMENTS:
13
224
  - guest/alt: Improve handling for using network tools when setting hostname [GH-11000]
14
225
  - guest/suse: Add ipv6 network config templates for SUSE based distributions [GH-11013]
15
226
  - guest/windows: Retry on connection timeout errors for the reboot capability [GH-11093]
16
- - host/bsd: Use host resolve path capability to modify local paths if requird [GH-11108]
227
+ - host/bsd: Use host resolve path capability to modify local paths if required [GH-11108]
17
228
  - host/darwin: Add host resolve path capability to provide real paths for firmlinks [GH-11108]
18
229
  - provisioners/chef: Update pkg install flags for chef on FreeBSD guests [GH-11075]
19
230
  - provider/hyperv: Improve error message when VMMS is not running [GH-10978]
@@ -509,7 +720,7 @@ BUG FIXES:
509
720
  - core: Rescue more exceptions when checking if port is open [GH-8517]
510
721
  - guests/solaris11: Inherit from Solaris guest and keep solaris11 specific methods [GH-9034]
511
722
  - guests/windows: Split out cygwin path helper for msys2/cygwin paths and ensure cygpath exists [GH-8972]
512
- - guests/windows: Specify expected shell when executing on guest (fixes winssh communicator usage) [GH-9012]
723
+ - guests/windows: Specify expected shell when executing on guest (fixes einssh communicator usage) [GH-9012]
513
724
  - guests/windows: Include WinSSH Communicator when using insert_public_key [GH-9105]
514
725
  - hosts/windows: Check for vagrant.exe when validating versions within WSL [GH-9107, GH-8962]
515
726
  - providers/docker: Isolate windows check within executor to handle running through VM [GH-8921]
data/Gemfile CHANGED
@@ -5,5 +5,5 @@ gemspec
5
5
  if File.exist?(File.expand_path("../../vagrant-spec", __FILE__))
6
6
  gem 'vagrant-spec', path: "../vagrant-spec"
7
7
  else
8
- gem 'vagrant-spec', git: "https://github.com/hashicorp/vagrant-spec.git"
8
+ gem 'vagrant-spec', git: "https://github.com/hashicorp/vagrant-spec.git", branch: :main
9
9
  end
data/README.md CHANGED
@@ -1,10 +1,8 @@
1
1
  # Vagrant
2
2
 
3
- * Website: [https://www.vagrantup.com/](https://www.vagrantup.com/)
4
- * Source: [https://github.com/hashicorp/vagrant](https://github.com/hashicorp/vagrant)
5
- * [![Gitter chat](https://badges.gitter.im/mitchellh/vagrant.png)](https://gitter.im/mitchellh/vagrant)
6
- * Mailing list: [Google Groups](https://groups.google.com/group/vagrant-up)
7
- * IRC: #vagrant on freenode.org
3
+ - Website: [https://www.vagrantup.com/](https://www.vagrantup.com/)
4
+ - Source: [https://github.com/hashicorp/vagrant](https://github.com/hashicorp/vagrant)
5
+ - HashiCorp Discuss: [https://discuss.hashicorp.com/c/vagrant/24](https://discuss.hashicorp.com/c/vagrant/24)
8
6
 
9
7
  Vagrant is a tool for building and distributing development environments.
10
8
 
@@ -19,7 +17,8 @@ between Windows, Mac OS X, and Linux.
19
17
 
20
18
  ## Quick Start
21
19
 
22
- Package dependencies: Vagrant requires `bsdtar` to be available on your system PATH to run successfully.
20
+ Package dependencies: Vagrant requires `bsdtar` and `curl` to be available on
21
+ your system PATH to run successfully.
23
22
 
24
23
  For the quick-start, we'll bring up a development machine on
25
24
  [VirtualBox](https://www.virtualbox.org/) because it is free and works
@@ -43,56 +42,15 @@ the box doesn't already exist on your system.
43
42
  ## Getting Started Guide
44
43
 
45
44
  To learn how to build a fully functional development environment, follow the
46
- [getting started guide](https://www.vagrantup.com/docs/getting-started/index.html).
45
+ [getting started guide](https://www.vagrantup.com/docs/getting-started).
47
46
 
48
47
  ## Installing from Source
49
48
 
50
- If you want the bleeding edge version of Vagrant, we try to keep master pretty stable
51
- and you're welcome to give it a shot. Please review the installation page [here](https://www.vagrantup.com/docs/installation/source.html).
49
+ If you want the bleeding edge version of Vagrant, we try to keep main pretty stable
50
+ and you're welcome to give it a shot. Please review the installation page [here](https://www.vagrantup.com/docs/installation/source).
52
51
 
53
52
  ## Contributing to Vagrant
54
53
 
55
- Once your Vagrant bundle is installed from Git repository, you can run the test suite with:
56
-
57
- bundle exec rake
58
-
59
- This will run the unit test suite, which should come back all green!
60
-
61
- If you are developing Vagrant on a machine that already has a Vagrant package installation present, both will attempt to use the same folder for their configuration (location of this folder depends on system). This can cause errors when Vagrant attempts to load plugins. In this case, override the `VAGRANT_HOME` environment variable for your development version of Vagrant before running any commands, to be some new folder within the project or elsewhere on your machine. For example, in Bash:
62
-
63
- export VAGRANT_HOME=~/.vagrant-dev
64
-
65
- You can now run Vagrant commands against the development version:
66
-
67
- bundle exec vagrant
68
-
69
- Please take time to read the [HashiCorp Community Guidelines](https://www.hashicorp.com/community-guidelines) and the [Vagrant Contributing Guide](https://github.com/hashicorp/vagrant/blob/master/.github/CONTRIBUTING.md).
54
+ Please take time to read the [HashiCorp Community Guidelines](https://www.hashicorp.com/community-guidelines) and the [Vagrant Contributing Guide](https://github.com/hashicorp/vagrant/blob/main/.github/CONTRIBUTING.md).
70
55
 
71
56
  Then you're good to go!
72
-
73
- ### Acceptance Tests
74
-
75
- Vagrant also comes with an acceptance test suite that does black-box
76
- tests of various Vagrant components. Note that these tests are **extremely
77
- slow** because actual VMs are spun up and down. The full test suite can
78
- take hours. Instead, try to run focused component tests.
79
-
80
- To run the acceptance test suite, first copy `vagrant-spec.config.example.rb`
81
- to `vagrant-spec.config.rb` and modify it to valid values. The places you
82
- should fill in are clearly marked.
83
-
84
- Next, see the components that can be tested:
85
-
86
- ```
87
- $ rake acceptance:components
88
- cli
89
- provider/virtualbox/basic
90
- ...
91
- ```
92
-
93
- Then, run one of those components:
94
-
95
- ```
96
- $ rake acceptance:run COMPONENTS="cli"
97
- ...
98
- ```
data/RELEASE.md CHANGED
@@ -22,7 +22,7 @@ targeted at Vagrant core members who have the ability to cut a release.
22
22
  to the latest version, commit, and push.
23
23
 
24
24
  1. Publish the webiste by deleting the `stable-website` branch, recreate the branch,
25
- and force push. From the `master` branch, run:
25
+ and force push. From the `main` branch, run:
26
26
 
27
27
  ```
28
28
  $ git branch -D stable-website
@@ -94,6 +94,23 @@ begin
94
94
  # Schedule the cleanup of things
95
95
  at_exit(&Vagrant::Bundler.instance.method(:deinit))
96
96
 
97
+ # If this is not a pre-release disable verbose output
98
+ if !Vagrant.prerelease?
99
+ $VERBOSE = nil
100
+ end
101
+
102
+ # Add any option flags defined within this file here
103
+ # so they are automatically propagated to all commands
104
+ Vagrant.add_default_cli_options(proc { |o|
105
+ o.on("--[no-]color", "Enable or disable color output")
106
+ o.on("--machine-readable", "Enable machine readable output")
107
+ o.on("-v", "--version", "Display Vagrant version")
108
+ o.on("--debug", "Enable debug output")
109
+ o.on("--timestamp", "Enable timestamps on log output")
110
+ o.on("--debug-timestamp", "Enable debug output with timestamps")
111
+ o.on("--no-tty", "Enable non-interactive output")
112
+ })
113
+
97
114
  # Create a logger right away
98
115
  logger = Log4r::Logger.new("vagrant::bin::vagrant")
99
116
  logger.info("`vagrant` invoked: #{ARGV.inspect}")
@@ -130,6 +147,12 @@ begin
130
147
  opts[:ui_class] = Vagrant::UI::MachineReadable
131
148
  end
132
149
 
150
+ # Setting to enable/disable showing progress bars
151
+ if argv.include?("--no-tty")
152
+ argv.delete("--no-tty")
153
+ opts[:ui_class] = Vagrant::UI::NonInteractive
154
+ end
155
+
133
156
  # Default to colored output
134
157
  opts[:ui_class] ||= Vagrant::UI::Colored
135
158
 
@@ -14,3 +14,4 @@ for each item will be kept below.
14
14
  starting machines.
15
15
  * `vim` - Contains a `.vim` file for enabling Ruby syntax highlighting
16
16
  for `Vagrantfile`s in `vim`.
17
+ * `zsh` - Contains a zsh script for improving autocompletion with zsh.
@@ -75,7 +75,19 @@ _vagrant() {
75
75
  then
76
76
  local vm_list=$(find "${vagrant_state_file}/machines" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;)
77
77
  fi
78
- local up_commands="--no-provision"
78
+ local up_commands="\
79
+ --provision \
80
+ --no-provision \
81
+ --provision-with \
82
+ --destroy-on-error \
83
+ --no-destroy-on-error \
84
+ --parallel \
85
+ --no-parallel
86
+ --provider \
87
+ --install-provider \
88
+ --no-install-provider \
89
+ -h \
90
+ --help"
79
91
  COMPREPLY=($(compgen -W "${up_commands} ${vm_list}" -- ${cur}))
80
92
  return 0
81
93
  ;;
@@ -1,6 +1,6 @@
1
1
  Cmnd_Alias VAGRANT_CHOWN = /usr/bin/chown 0\:0 /tmp/vagrant[a-z0-9-]*
2
2
  Cmnd_Alias VAGRANT_MV = /usr/bin/mv -f /tmp/vagrant[a-z0-9-]* /etc/exports
3
- Cmnd_Alias VAGRANT_START = /sbin/service nfsserver start
4
- Cmnd_Alias VAGRANT_STATUS = /sbin/service nfsserver status
3
+ Cmnd_Alias VAGRANT_START = /usr/bin/systemctl start --no-pager nfs-server
4
+ Cmnd_Alias VAGRANT_STATUS = /usr/bin/systemctl status --no-pager nfs-server
5
5
  Cmnd_Alias VAGRANT_APPLY = /usr/sbin/exportfs -ar
6
6
  %vagrant ALL=(root) NOPASSWD: VAGRANT_CHOWN, VAGRANT_MV, VAGRANT_START, VAGRANT_STATUS, VAGRANT_APPLY
@@ -0,0 +1,738 @@
1
+ #compdef _vagrant vagrant
2
+
3
+ # ZSH completion for Vagrant
4
+ #
5
+ # To use this completion add this to ~/.zshrc
6
+ # fpath=(/path/to/this/dir $fpath)
7
+ # compinit
8
+ #
9
+ # For development reload the function after making changes
10
+ # unfunction _vagrant && autoload -U _vagrant
11
+
12
+
13
+ __box_list ()
14
+ {
15
+ _wanted application expl 'command' compadd $(command vagrant box list | awk '{print $1}' )
16
+ }
17
+
18
+
19
+ __plugin_list ()
20
+ {
21
+ _wanted application expl 'command' compadd $(command vagrant plugin list | awk '{print $1}')
22
+ }
23
+
24
+
25
+ function _vagrant () {
26
+
27
+ local -a sub_commands && sub_commands=(
28
+ 'autocomplete:manages autocomplete installation on host'
29
+ 'box:manages boxes: installation, removal, etc.'
30
+ 'cloud:manages everything related to Vagrant Cloud'
31
+ 'destroy:stops and deletes all traces of the vagrant machine'
32
+ 'global-status:outputs status Vagrant environments for this user'
33
+ 'halt:stops the vagrant machine'
34
+ 'help:shows the help for a subcommand'
35
+ 'init:initializes a new Vagrant environment by creating a Vagrantfile'
36
+ 'login:'
37
+ 'package:packages a running vagrant environment into a box'
38
+ 'plugin:manages plugins: install, uninstall, update, etc.'
39
+ 'port:displays information about guest port mappings'
40
+ 'powershell:connects to machine via powershell remoting'
41
+ 'provision:provisions the vagrant machine'
42
+ 'push:deploys code in this environment to a configured destination'
43
+ 'rdp:connects to machine via RDP'
44
+ 'reload:restarts vagrant machine, loads new Vagrantfile configuration'
45
+ 'resume:resume a suspended vagrant machine'
46
+ 'snapshot:manages snapshots: saving, restoring, etc.'
47
+ 'ssh:connects to machine via SSH'
48
+ 'ssh-config:outputs OpenSSH valid configuration to connect to the machine'
49
+ 'status:outputs status of the vagrant machine'
50
+ 'suspend:suspends the machine'
51
+ 'up:starts and provisions the vagrant environment'
52
+ 'upload:upload to machine via communicator'
53
+ 'validate:validates the Vagrantfile'
54
+ 'version:prints current and latest Vagrant version'
55
+ 'winrm:executes commands on a machine via WinRM'
56
+ 'winrm-config:outputs WinRM configuration to connect to the machine'
57
+ )
58
+
59
+ local -a cloud_arguments && cloud_arguments=(
60
+ '--(no-)color=[Enable or disable color output]'
61
+ '--machine-readable=[Enable machine readable output]'
62
+ '--debug=[Enable debug output]'
63
+ '--timestamp=[Enable timestamps on log output]'
64
+ '--debug-timestamp=[Enable debug output with timestamps]'
65
+ '--no-tty=[Enable non_interactive output]'
66
+ )
67
+
68
+ local -a destroy_arguments && destroy_arguments=(
69
+ '--(no-)parallel=[Enable or disable parallelism if provider supports it (automatically enables force)]'
70
+ '--(no-)color=[Enable or disable color output]'
71
+ '--machine-readable=[Enable machine readable output]'
72
+ '--debug=[Enable debug output]'
73
+ '--timestamp=[Enable timestamps on log output]'
74
+ '--debug-timestamp=[Enable debug output with timestamps]'
75
+ '--no-tty=[Enable non_interactive output]'
76
+ )
77
+
78
+ local -a global_status_arguments && global_status_arguments=(
79
+ '--prune=[Prune invalid entries.]'
80
+ '--(no-)color=[Enable or disable color output]'
81
+ '--machine-readable=[Enable machine readable output]'
82
+ '--debug=[Enable debug output]'
83
+ '--timestamp=[Enable timestamps on log output]'
84
+ '--debug-timestamp=[Enable debug output with timestamps]'
85
+ '--no-tty=[Enable non_interactive output]'
86
+ )
87
+
88
+ local -a halt_arguments && halt_arguments=(
89
+ '--(no-)color=[Enable or disable color output]'
90
+ '--machine-readable=[Enable machine readable output]'
91
+ '--debug=[Enable debug output]'
92
+ '--timestamp=[Enable timestamps on log output]'
93
+ '--debug-timestamp=[Enable debug output with timestamps]'
94
+ '--no-tty=[Enable non_interactive output]'
95
+ )
96
+
97
+ local -a help_arguments && help_arguments=(
98
+ '--(no-)color=[Enable or disable color output]'
99
+ '--machine-readable=[Enable machine readable output]'
100
+ '--debug=[Enable debug output]'
101
+ '--timestamp=[Enable timestamps on log output]'
102
+ '--debug-timestamp=[Enable debug output with timestamps]'
103
+ '--no-tty=[Enable non_interactive output]'
104
+ )
105
+
106
+ local -a init_arguments && init_arguments=(
107
+ '--box-version=[Version of the box to add]'
108
+ '--output=[Output path for the box. _ for stdout]'
109
+ '--template=[Path to custom Vagrantfile template]'
110
+ '--(no-)color=[Enable or disable color output]'
111
+ '--machine-readable=[Enable machine readable output]'
112
+ '--debug=[Enable debug output]'
113
+ '--timestamp=[Enable timestamps on log output]'
114
+ '--debug-timestamp=[Enable debug output with timestamps]'
115
+ '--no-tty=[Enable non_interactive output]'
116
+ )
117
+
118
+ local -a login_arguments && login_arguments=(
119
+ '--(no-)color=[Enable or disable color output]'
120
+ '--machine-readable=[Enable machine readable output]'
121
+ '--debug=[Enable debug output]'
122
+ '--timestamp=[Enable timestamps on log output]'
123
+ '--debug-timestamp=[Enable debug output with timestamps]'
124
+ '--no-tty=[Enable non_interactive output]'
125
+ )
126
+
127
+ local -a package_arguments && package_arguments=(
128
+ '--base=[Name of a VM in VirtualBox to package as a base box (VirtualBox Only)]'
129
+ '--output=[Name of the file to output]'
130
+ '--include=[Comma separated additional files to package with the box]'
131
+ '--vagrantfile=[Vagrantfile to package with the box]'
132
+ '--(no-)color=[Enable or disable color output]'
133
+ '--machine-readable=[Enable machine readable output]'
134
+ '--debug=[Enable debug output]'
135
+ '--timestamp=[Enable timestamps on log output]'
136
+ '--debug-timestamp=[Enable debug output with timestamps]'
137
+ '--no-tty=[Enable non_interactive output]'
138
+ )
139
+
140
+ local -a port_arguments && port_arguments=(
141
+ '--guest=[Output the host port that maps to the given guest port]'
142
+ '--(no-)color=[Enable or disable color output]'
143
+ '--machine-readable=[Enable machine readable output]'
144
+ '--debug=[Enable debug output]'
145
+ '--timestamp=[Enable timestamps on log output]'
146
+ '--debug-timestamp=[Enable debug output with timestamps]'
147
+ '--no-tty=[Enable non_interactive output]'
148
+ )
149
+
150
+ local -a powershell_arguments && powershell_arguments=(
151
+ '--(no-)color=[Enable or disable color output]'
152
+ '--machine-readable=[Enable machine readable output]'
153
+ '--debug=[Enable debug output]'
154
+ '--timestamp=[Enable timestamps on log output]'
155
+ '--debug-timestamp=[Enable debug output with timestamps]'
156
+ '--no-tty=[Enable non_interactive output]'
157
+ )
158
+
159
+ local -a provision_arguments && provision_arguments=(
160
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
161
+ '--(no-)color=[Enable or disable color output]'
162
+ '--machine-readable=[Enable machine readable output]'
163
+ '--debug=[Enable debug output]'
164
+ '--timestamp=[Enable timestamps on log output]'
165
+ '--debug-timestamp=[Enable debug output with timestamps]'
166
+ '--no-tty=[Enable non_interactive output]'
167
+ )
168
+
169
+ local -a push_arguments && push_arguments=(
170
+ '--(no-)color=[Enable or disable color output]'
171
+ '--machine-readable=[Enable machine readable output]'
172
+ '--debug=[Enable debug output]'
173
+ '--timestamp=[Enable timestamps on log output]'
174
+ '--debug-timestamp=[Enable debug output with timestamps]'
175
+ '--no-tty=[Enable non_interactive output]'
176
+ )
177
+
178
+ local -a rdp_arguments && rdp_arguments=(
179
+ '--(no-)color=[Enable or disable color output]'
180
+ '--machine-readable=[Enable machine readable output]'
181
+ '--debug=[Enable debug output]'
182
+ '--timestamp=[Enable timestamps on log output]'
183
+ '--debug-timestamp=[Enable debug output with timestamps]'
184
+ '--no-tty=[Enable non_interactive output]'
185
+ )
186
+
187
+ local -a reload_arguments && reload_arguments=(
188
+ '--(no-)provision=[Enable or disable provisioning]'
189
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
190
+ '--(no-)color=[Enable or disable color output]'
191
+ '--machine-readable=[Enable machine readable output]'
192
+ '--debug=[Enable debug output]'
193
+ '--timestamp=[Enable timestamps on log output]'
194
+ '--debug-timestamp=[Enable debug output with timestamps]'
195
+ '--no-tty=[Enable non_interactive output]'
196
+ )
197
+
198
+ local -a resume_arguments && resume_arguments=(
199
+ '--(no-)provision=[Enable or disable provisioning]'
200
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
201
+ '--(no-)color=[Enable or disable color output]'
202
+ '--machine-readable=[Enable machine readable output]'
203
+ '--debug=[Enable debug output]'
204
+ '--timestamp=[Enable timestamps on log output]'
205
+ '--debug-timestamp=[Enable debug output with timestamps]'
206
+ '--no-tty=[Enable non_interactive output]'
207
+ )
208
+
209
+ local -a ssh_arguments && ssh_arguments=(
210
+ '--(no-)color=[Enable or disable color output]'
211
+ '--machine-readable=[Enable machine readable output]'
212
+ '--debug=[Enable debug output]'
213
+ '--timestamp=[Enable timestamps on log output]'
214
+ '--debug-timestamp=[Enable debug output with timestamps]'
215
+ '--no-tty=[Enable non_interactive output]'
216
+ )
217
+
218
+ local -a ssh_config_arguments && ssh_config_arguments=(
219
+ '--host=[Name the host for the config]'
220
+ '--(no-)color=[Enable or disable color output]'
221
+ '--machine-readable=[Enable machine readable output]'
222
+ '--debug=[Enable debug output]'
223
+ '--timestamp=[Enable timestamps on log output]'
224
+ '--debug-timestamp=[Enable debug output with timestamps]'
225
+ '--no-tty=[Enable non_interactive output]'
226
+ )
227
+
228
+ local -a status_arguments && status_arguments=(
229
+ '--(no-)color=[Enable or disable color output]'
230
+ '--machine-readable=[Enable machine readable output]'
231
+ '--debug=[Enable debug output]'
232
+ '--timestamp=[Enable timestamps on log output]'
233
+ '--debug-timestamp=[Enable debug output with timestamps]'
234
+ '--no-tty=[Enable non_interactive output]'
235
+ )
236
+
237
+ local -a suspend_arguments && suspend_arguments=(
238
+ '--(no-)color=[Enable or disable color output]'
239
+ '--machine-readable=[Enable machine readable output]'
240
+ '--debug=[Enable debug output]'
241
+ '--timestamp=[Enable timestamps on log output]'
242
+ '--debug-timestamp=[Enable debug output with timestamps]'
243
+ '--no-tty=[Enable non_interactive output]'
244
+ )
245
+
246
+ local -a up_arguments && up_arguments=(
247
+ '--(no-)provision=[Enable or disable provisioning]'
248
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
249
+ '--(no-)destroy-on-error=[Destroy machine if any fatal error happens (default to true)]'
250
+ '--(no-)parallel=[Enable or disable parallelism if provider supports it]'
251
+ '--provider=[Back the machine with a specific provider]'
252
+ '--(no-)install-provider=[If possible, install the provider if it isnt installed]'
253
+ '--(no-)color=[Enable or disable color output]'
254
+ '--machine-readable=[Enable machine readable output]'
255
+ '--debug=[Enable debug output]'
256
+ '--timestamp=[Enable timestamps on log output]'
257
+ '--debug-timestamp=[Enable debug output with timestamps]'
258
+ '--no-tty=[Enable non_interactive output]'
259
+ )
260
+
261
+ local -a upload_arguments && upload_arguments=(
262
+ '--(no-)color=[Enable or disable color output]'
263
+ '--machine-readable=[Enable machine readable output]'
264
+ '--debug=[Enable debug output]'
265
+ '--timestamp=[Enable timestamps on log output]'
266
+ '--debug-timestamp=[Enable debug output with timestamps]'
267
+ '--no-tty=[Enable non_interactive output]'
268
+ )
269
+
270
+ local -a validate_arguments && validate_arguments=(
271
+ '--(no-)color=[Enable or disable color output]'
272
+ '--machine-readable=[Enable machine readable output]'
273
+ '--debug=[Enable debug output]'
274
+ '--timestamp=[Enable timestamps on log output]'
275
+ '--debug-timestamp=[Enable debug output with timestamps]'
276
+ '--no-tty=[Enable non_interactive output]'
277
+ )
278
+
279
+ local -a version_arguments && version_arguments=(
280
+ '--(no-)color=[Enable or disable color output]'
281
+ '--machine-readable=[Enable machine readable output]'
282
+ '--debug=[Enable debug output]'
283
+ '--timestamp=[Enable timestamps on log output]'
284
+ '--debug-timestamp=[Enable debug output with timestamps]'
285
+ '--no-tty=[Enable non_interactive output]'
286
+ )
287
+
288
+ local -a winrm_arguments && winrm_arguments=(
289
+ '--(no-)color=[Enable or disable color output]'
290
+ '--machine-readable=[Enable machine readable output]'
291
+ '--debug=[Enable debug output]'
292
+ '--timestamp=[Enable timestamps on log output]'
293
+ '--debug-timestamp=[Enable debug output with timestamps]'
294
+ '--no-tty=[Enable non_interactive output]'
295
+ )
296
+
297
+ local -a winrm_config_arguments && winrm_config_arguments=(
298
+ '--host=[Name the host for the config]'
299
+ '--(no-)color=[Enable or disable color output]'
300
+ '--machine-readable=[Enable machine readable output]'
301
+ '--debug=[Enable debug output]'
302
+ '--timestamp=[Enable timestamps on log output]'
303
+ '--debug-timestamp=[Enable debug output with timestamps]'
304
+ '--no-tty=[Enable non_interactive output]'
305
+ )
306
+
307
+
308
+
309
+ _arguments -C ':command:->command' '*::options:->options'
310
+
311
+ case $state in
312
+ (command)
313
+ _describe -t commands 'command' sub_commands
314
+ return
315
+ ;;
316
+
317
+ (options)
318
+ case $line[1] in
319
+ autocomplete)
320
+ __vagrant-autocomplete ;;
321
+ box)
322
+ __vagrant-box ;;
323
+ cloud)
324
+ _arguments -s -S : $cloud_arguments ;;
325
+ destroy)
326
+ _arguments -s -S : $destroy_arguments ;;
327
+ global-status)
328
+ _arguments -s -S : $global_status_arguments ;;
329
+ halt)
330
+ _arguments -s -S : $halt_arguments ;;
331
+ help)
332
+ _arguments -s -S : $help_arguments ;;
333
+ init)
334
+ _arguments -s -S : $init_arguments ;;
335
+ login)
336
+ _arguments -s -S : $login_arguments ;;
337
+ package)
338
+ _arguments -s -S : $package_arguments ;;
339
+ plugin)
340
+ __vagrant-plugin ;;
341
+ port)
342
+ _arguments -s -S : $port_arguments ;;
343
+ powershell)
344
+ _arguments -s -S : $powershell_arguments ;;
345
+ provision)
346
+ _arguments -s -S : $provision_arguments ;;
347
+ push)
348
+ _arguments -s -S : $push_arguments ;;
349
+ rdp)
350
+ _arguments -s -S : $rdp_arguments ;;
351
+ reload)
352
+ _arguments -s -S : $reload_arguments ;;
353
+ resume)
354
+ _arguments -s -S : $resume_arguments ;;
355
+ snapshot)
356
+ __vagrant-snapshot ;;
357
+ ssh)
358
+ _arguments -s -S : $ssh_arguments ;;
359
+ ssh-config)
360
+ _arguments -s -S : $ssh_config_arguments ;;
361
+ status)
362
+ _arguments -s -S : $status_arguments ;;
363
+ suspend)
364
+ _arguments -s -S : $suspend_arguments ;;
365
+ up)
366
+ _arguments -s -S : $up_arguments ;;
367
+ upload)
368
+ _arguments -s -S : $upload_arguments ;;
369
+ validate)
370
+ _arguments -s -S : $validate_arguments ;;
371
+ version)
372
+ _arguments -s -S : $version_arguments ;;
373
+ winrm)
374
+ _arguments -s -S : $winrm_arguments ;;
375
+ winrm-config)
376
+ _arguments -s -S : $winrm_config_arguments ;;
377
+ esac
378
+ ;;
379
+ esac
380
+
381
+ }
382
+
383
+ function __vagrant-box () {
384
+
385
+ local -a sub_commands && sub_commands=(
386
+ 'add:add'
387
+ 'list:list'
388
+ 'outdated:outdated'
389
+ 'prune:prune'
390
+ 'remove:remove'
391
+ 'repackage:repackage'
392
+ 'update:update'
393
+ )
394
+
395
+ local -a add_arguments && add_arguments=(
396
+ '--insecure=[Do not validate SSL certificates]'
397
+ '--cacert=[CA certificate for SSL download]'
398
+ '--capath=[CA certificate directory for SSL download]'
399
+ '--cert=[A client SSL cert, if needed]'
400
+ '--location-trusted=[Trust Location header from HTTP redirects and use the same credentials for subsequent urls as for the initial one]'
401
+ '--provider=[Provider the box should satisfy]'
402
+ '--box-version=[Constrain version of the added box]'
403
+ '--checksum=[Checksum for the box]'
404
+ '--checksum-type=[Checksum type (md5, sha1, sha256)]'
405
+ '--name=[Name of the box]'
406
+ '--(no-)color=[Enable or disable color output]'
407
+ '--machine-readable=[Enable machine readable output]'
408
+ '--debug=[Enable debug output]'
409
+ '--timestamp=[Enable timestamps on log output]'
410
+ '--debug-timestamp=[Enable debug output with timestamps]'
411
+ '--no-tty=[Enable non_interactive output]'
412
+ )
413
+
414
+ local -a list_arguments && list_arguments=(
415
+ '--(no-)color=[Enable or disable color output]'
416
+ '--machine-readable=[Enable machine readable output]'
417
+ '--debug=[Enable debug output]'
418
+ '--timestamp=[Enable timestamps on log output]'
419
+ '--debug-timestamp=[Enable debug output with timestamps]'
420
+ '--no-tty=[Enable non_interactive output]'
421
+ )
422
+
423
+ local -a outdated_arguments && outdated_arguments=(
424
+ '--global=[Check all boxes installed]'
425
+ '--insecure=[Do not validate SSL certificates]'
426
+ '--cacert=[CA certificate for SSL download]'
427
+ '--capath=[CA certificate directory for SSL download]'
428
+ '--cert=[A client SSL cert, if needed]'
429
+ '--(no-)color=[Enable or disable color output]'
430
+ '--machine-readable=[Enable machine readable output]'
431
+ '--debug=[Enable debug output]'
432
+ '--timestamp=[Enable timestamps on log output]'
433
+ '--debug-timestamp=[Enable debug output with timestamps]'
434
+ '--no-tty=[Enable non_interactive output]'
435
+ )
436
+
437
+ local -a prune_arguments && prune_arguments=(
438
+ '--name=[The specific box name to check for outdated versions.]'
439
+ '--(no-)color=[Enable or disable color output]'
440
+ '--machine-readable=[Enable machine readable output]'
441
+ '--debug=[Enable debug output]'
442
+ '--timestamp=[Enable timestamps on log output]'
443
+ '--debug-timestamp=[Enable debug output with timestamps]'
444
+ '--no-tty=[Enable non_interactive output]'
445
+ )
446
+
447
+ local -a remove_arguments && remove_arguments=(
448
+ '--provider=[The specific provider type for the box to remove]'
449
+ '--box-version=[The specific version of the box to remove]'
450
+ '--all=[Remove all available versions of the box]'
451
+ '--(no-)color=[Enable or disable color output]'
452
+ '--machine-readable=[Enable machine readable output]'
453
+ '--debug=[Enable debug output]'
454
+ '--timestamp=[Enable timestamps on log output]'
455
+ '--debug-timestamp=[Enable debug output with timestamps]'
456
+ '--no-tty=[Enable non_interactive output]'
457
+ )
458
+
459
+ local -a repackage_arguments && repackage_arguments=(
460
+ '--(no-)color=[Enable or disable color output]'
461
+ '--machine-readable=[Enable machine readable output]'
462
+ '--debug=[Enable debug output]'
463
+ '--timestamp=[Enable timestamps on log output]'
464
+ '--debug-timestamp=[Enable debug output with timestamps]'
465
+ '--no-tty=[Enable non_interactive output]'
466
+ )
467
+
468
+ local -a update_arguments && update_arguments=(
469
+ '--box=[__box flag.]'
470
+ '--box=[Update a specific box]'
471
+ '--provider=[Update box with specific provider]'
472
+ '--insecure=[Do not validate SSL certificates]'
473
+ '--cacert=[CA certificate for SSL download]'
474
+ '--capath=[CA certificate directory for SSL download]'
475
+ '--cert=[A client SSL cert, if needed]'
476
+ '--(no-)color=[Enable or disable color output]'
477
+ '--machine-readable=[Enable machine readable output]'
478
+ '--debug=[Enable debug output]'
479
+ '--timestamp=[Enable timestamps on log output]'
480
+ '--debug-timestamp=[Enable debug output with timestamps]'
481
+ '--no-tty=[Enable non_interactive output]'
482
+ )
483
+
484
+
485
+
486
+ _arguments -C ':command:->command' '*::options:->options'
487
+
488
+ case $state in
489
+ (command)
490
+ _describe -t commands 'command' sub_commands
491
+ return
492
+ ;;
493
+
494
+ (options)
495
+ case $line[1] in
496
+ add)
497
+ _arguments -s -S : $add_arguments ;;
498
+ list)
499
+ _arguments -s -S : $list_arguments ;;
500
+ outdated)
501
+ _arguments -s -S : $outdated_arguments ;;
502
+ prune)
503
+ _arguments -s -S : $prune_arguments ;;
504
+ remove)
505
+ _arguments -s -S : $remove_arguments ':feature:__box_list' ;;
506
+ repackage)
507
+ _arguments -s -S : $repackage_arguments ':feature:__box_list' ;;
508
+ update)
509
+ _arguments -s -S : $update_arguments ':feature:__box_list' ;;
510
+ esac
511
+ ;;
512
+ esac
513
+
514
+ }
515
+
516
+ function __vagrant-snapshot () {
517
+
518
+ local -a sub_commands && sub_commands=(
519
+ 'delete:delete'
520
+ 'list:list'
521
+ 'pop:pop'
522
+ 'push:push'
523
+ 'restore:restore'
524
+ 'save:save'
525
+ )
526
+
527
+ local -a delete_arguments && delete_arguments=(
528
+ '--(no-)color=[Enable or disable color output]'
529
+ '--machine-readable=[Enable machine readable output]'
530
+ '--debug=[Enable debug output]'
531
+ '--timestamp=[Enable timestamps on log output]'
532
+ '--debug-timestamp=[Enable debug output with timestamps]'
533
+ '--no-tty=[Enable non_interactive output]'
534
+ )
535
+
536
+ local -a list_arguments && list_arguments=(
537
+ '--(no-)color=[Enable or disable color output]'
538
+ '--machine-readable=[Enable machine readable output]'
539
+ '--debug=[Enable debug output]'
540
+ '--timestamp=[Enable timestamps on log output]'
541
+ '--debug-timestamp=[Enable debug output with timestamps]'
542
+ '--no-tty=[Enable non_interactive output]'
543
+ )
544
+
545
+ local -a pop_arguments && pop_arguments=(
546
+ '--(no-)provision=[Enable or disable provisioning]'
547
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
548
+ '--no-delete=[Dont delete the snapshot after the restore]'
549
+ '--no-start=[Dont start the snapshot after the restore]'
550
+ '--(no-)color=[Enable or disable color output]'
551
+ '--machine-readable=[Enable machine readable output]'
552
+ '--debug=[Enable debug output]'
553
+ '--timestamp=[Enable timestamps on log output]'
554
+ '--debug-timestamp=[Enable debug output with timestamps]'
555
+ '--no-tty=[Enable non_interactive output]'
556
+ )
557
+
558
+ local -a push_arguments && push_arguments=(
559
+ '--(no-)color=[Enable or disable color output]'
560
+ '--machine-readable=[Enable machine readable output]'
561
+ '--debug=[Enable debug output]'
562
+ '--timestamp=[Enable timestamps on log output]'
563
+ '--debug-timestamp=[Enable debug output with timestamps]'
564
+ '--no-tty=[Enable non_interactive output]'
565
+ )
566
+
567
+ local -a restore_arguments && restore_arguments=(
568
+ '--(no-)provision=[Enable or disable provisioning]'
569
+ '--provision-with=[Enable only certain provisioners, by type or by name.]'
570
+ '--no-start=[Dont start the snapshot after the restore]'
571
+ '--(no-)color=[Enable or disable color output]'
572
+ '--machine-readable=[Enable machine readable output]'
573
+ '--debug=[Enable debug output]'
574
+ '--timestamp=[Enable timestamps on log output]'
575
+ '--debug-timestamp=[Enable debug output with timestamps]'
576
+ '--no-tty=[Enable non_interactive output]'
577
+ )
578
+
579
+ local -a save_arguments && save_arguments=(
580
+ '--(no-)color=[Enable or disable color output]'
581
+ '--machine-readable=[Enable machine readable output]'
582
+ '--debug=[Enable debug output]'
583
+ '--timestamp=[Enable timestamps on log output]'
584
+ '--debug-timestamp=[Enable debug output with timestamps]'
585
+ '--no-tty=[Enable non_interactive output]'
586
+ )
587
+
588
+
589
+
590
+ _arguments -C ':command:->command' '*::options:->options'
591
+
592
+ case $state in
593
+ (command)
594
+ _describe -t commands 'command' sub_commands
595
+ return
596
+ ;;
597
+
598
+ (options)
599
+ case $line[1] in
600
+ delete)
601
+ _arguments -s -S : $delete_arguments ;;
602
+ list)
603
+ _arguments -s -S : $list_arguments ;;
604
+ pop)
605
+ _arguments -s -S : $pop_arguments ;;
606
+ push)
607
+ _arguments -s -S : $push_arguments ;;
608
+ restore)
609
+ _arguments -s -S : $restore_arguments ;;
610
+ save)
611
+ _arguments -s -S : $save_arguments ;;
612
+ esac
613
+ ;;
614
+ esac
615
+
616
+ }
617
+
618
+ function __vagrant-plugin () {
619
+
620
+ local -a sub_commands && sub_commands=(
621
+ 'expunge:expunge'
622
+ 'install:install'
623
+ 'license:license'
624
+ 'list:list'
625
+ 'repair:repair'
626
+ 'uninstall:uninstall'
627
+ 'update:update'
628
+ )
629
+
630
+ local -a expunge_arguments && expunge_arguments=(
631
+ '--force=[Do not prompt for confirmation]'
632
+ '--local=[Include plugins from local project for expunge]'
633
+ '--local-only=[Only expunge local project plugins]'
634
+ '--global-only=[Only expunge global plugins]'
635
+ '--reinstall=[Reinstall current plugins after expunge]'
636
+ '--(no-)color=[Enable or disable color output]'
637
+ '--machine-readable=[Enable machine readable output]'
638
+ '--debug=[Enable debug output]'
639
+ '--timestamp=[Enable timestamps on log output]'
640
+ '--debug-timestamp=[Enable debug output with timestamps]'
641
+ '--no-tty=[Enable non_interactive output]'
642
+ )
643
+
644
+ local -a install_arguments && install_arguments=(
645
+ '--entry-point=[The name of the entry point file for loading the plugin.]'
646
+ '--plugin-clean-sources=[Remove all plugin sources defined so far (including defaults)]'
647
+ '--plugin-source=[__plugin_source PLUGIN_SOURCE]'
648
+ '--plugin-version=[__plugin_version PLUGIN_VERSION]'
649
+ '--local=[Install plugin for local project only]'
650
+ '--verbose=[Enable verbose output for plugin installation]'
651
+ '--(no-)color=[Enable or disable color output]'
652
+ '--machine-readable=[Enable machine readable output]'
653
+ '--debug=[Enable debug output]'
654
+ '--timestamp=[Enable timestamps on log output]'
655
+ '--debug-timestamp=[Enable debug output with timestamps]'
656
+ '--no-tty=[Enable non_interactive output]'
657
+ )
658
+
659
+ local -a license_arguments && license_arguments=(
660
+ '--(no-)color=[Enable or disable color output]'
661
+ '--machine-readable=[Enable machine readable output]'
662
+ '--debug=[Enable debug output]'
663
+ '--timestamp=[Enable timestamps on log output]'
664
+ '--debug-timestamp=[Enable debug output with timestamps]'
665
+ '--no-tty=[Enable non_interactive output]'
666
+ )
667
+
668
+ local -a list_arguments && list_arguments=(
669
+ '--local=[Include local project plugins]'
670
+ '--(no-)color=[Enable or disable color output]'
671
+ '--machine-readable=[Enable machine readable output]'
672
+ '--debug=[Enable debug output]'
673
+ '--timestamp=[Enable timestamps on log output]'
674
+ '--debug-timestamp=[Enable debug output with timestamps]'
675
+ '--no-tty=[Enable non_interactive output]'
676
+ )
677
+
678
+ local -a repair_arguments && repair_arguments=(
679
+ '--local=[Repair plugins in local project]'
680
+ '--(no-)color=[Enable or disable color output]'
681
+ '--machine-readable=[Enable machine readable output]'
682
+ '--debug=[Enable debug output]'
683
+ '--timestamp=[Enable timestamps on log output]'
684
+ '--debug-timestamp=[Enable debug output with timestamps]'
685
+ '--no-tty=[Enable non_interactive output]'
686
+ )
687
+
688
+ local -a uninstall_arguments && uninstall_arguments=(
689
+ '--local=[Remove plugin from local project]'
690
+ '--(no-)color=[Enable or disable color output]'
691
+ '--machine-readable=[Enable machine readable output]'
692
+ '--debug=[Enable debug output]'
693
+ '--timestamp=[Enable timestamps on log output]'
694
+ '--debug-timestamp=[Enable debug output with timestamps]'
695
+ '--no-tty=[Enable non_interactive output]'
696
+ )
697
+
698
+ local -a update_arguments && update_arguments=(
699
+ '--local=[Update plugin in local project]'
700
+ '--(no-)color=[Enable or disable color output]'
701
+ '--machine-readable=[Enable machine readable output]'
702
+ '--debug=[Enable debug output]'
703
+ '--timestamp=[Enable timestamps on log output]'
704
+ '--debug-timestamp=[Enable debug output with timestamps]'
705
+ '--no-tty=[Enable non_interactive output]'
706
+ )
707
+
708
+
709
+
710
+ _arguments -C ':command:->command' '*::options:->options'
711
+
712
+ case $state in
713
+ (command)
714
+ _describe -t commands 'command' sub_commands
715
+ return
716
+ ;;
717
+
718
+ (options)
719
+ case $line[1] in
720
+ expunge)
721
+ _arguments -s -S : $expunge_arguments ;;
722
+ install)
723
+ _arguments -s -S : $install_arguments ;;
724
+ license)
725
+ _arguments -s -S : $license_arguments ;;
726
+ list)
727
+ _arguments -s -S : $list_arguments ;;
728
+ repair)
729
+ _arguments -s -S : $repair_arguments ':feature:__plugin_list' ;;
730
+ uninstall)
731
+ _arguments -s -S : $uninstall_arguments ':feature:__plugin_list' ;;
732
+ update)
733
+ _arguments -s -S : $update_arguments ':feature:__plugin_list' ;;
734
+ esac
735
+ ;;
736
+ esac
737
+
738
+ }