vagrant/lib/vagrant
Mitchell Hashimoto de78a3637a Plugin activation
Vagrant is only guaranteeing that the plugin definition superclass (the
Vagrant.plugin("1") part) is backwards compatible. Anything else, such
as Vagrant::Command::Base and so on, will likely change in future
versions. Beacuse of this, plugins should only immediately expose their
definition.

In order to support loading the other classes, plugins should defer
loading to the "activation" phase of a plugin. This can be done using
the `activated` block:

    class MyPlugin < Vagrant.plugin("1")
      name "my plugin"

      activated do
        require "myplugin/my_command"
      end

      command("foo") { MyCommand }
    end

Plugin activation is done at two specific times:

  * Right when a Vagrant::Environment is created and the global plugins
    (such as from ~.vagrantrc) are loaded.
  * Right before loading configuration, but after the Vagrantfiles have
    been evaluated. This allows plugins to be defined within these files
    as well.
2012-05-21 22:23:50 -07:00
..
action Setting up hostname before setting up the network to minimize issues as described in http://serverfault.com/questions/38114/why-does-sudo-command-take-long-to-execute 2012-05-19 09:17:44 -07:00
communication `download` operation 2012-05-05 19:52:10 -07:00
config Vagrant.configure and versioned configuration 2012-05-21 21:47:01 -07:00
downloaders Catch Errno::ETIMEDOUT for downloading boxes [GH-849] 2012-03-30 19:28:10 -07:00
driver Support multiple paths in VBOX_INSTALL_PATH [GH-885] 2012-05-04 20:48:52 -07:00
easy Tests for the Easy command base 2012-05-06 10:01:50 -07:00
plugin Plugin activation 2012-05-21 22:23:50 -07:00
util IsPortOpen utility 2012-03-23 10:26:29 -04:00
action.rb Enable Host IO cache on SATA controller by default 2012-03-22 13:41:48 -07:00
box.rb Lazy load attributes for runners. Get box repackage working. 2011-12-09 20:24:34 -08:00
box_collection.rb Throw an error if a box already exists when calling box.add 2011-12-10 13:09:03 -08:00
cli.rb Fix some issues with commands not referencing proper classes 2012-04-19 14:02:03 -07:00
command.rb Single-VM mode still allows target name in vagrant commands 2012-05-06 14:33:47 -07:00
communication.rb Communication abstraction. Started SSH. 2012-01-06 20:07:31 -08:00
config.rb Vagrant.configure and versioned configuration 2012-05-21 21:47:01 -07:00
data_store.rb Allow data store to work even if file path is nil 2012-02-25 10:41:06 -08:00
downloaders.rb Be gone glob loader! Move everything to autoload or explicit require. 2011-01-07 01:12:16 -08:00
driver.rb Support VirtualBox 4.0 2012-01-07 21:16:40 -08:00
easy.rb Easy hooks 2012-05-05 22:31:21 -07:00
environment.rb Plugin activation 2012-05-21 22:23:50 -07:00
errors.rb Vagrant.require_plugin [GH-916] 2012-05-06 14:01:10 -07:00
guest.rb Remove guest subdirectory 2012-04-19 21:28:24 -07:00
hosts.rb Remove hosts directory 2012-04-19 21:27:16 -07:00
plugin.rb Remove gem-based plugin loading 2012-05-05 12:57:31 -07:00
provisioners.rb Get rid of provisioners directory 2012-04-19 20:30:14 -07:00
registry.rb Major guests have been moved to plugins 2012-04-18 21:03:03 -07:00
ssh.rb Merge pull request #877 from bitprophet/allow-agents-in-plain-mode 2012-05-04 20:31:15 -07:00
test_helpers.rb update the action_env test helper for the new environment structure 2012-02-06 22:47:25 -08:00
ui.rb safe_puts to avoid EPIPE [GH-819] 2012-03-18 17:45:49 -06:00
util.rb Remove GlobLoader from util.rb since it doesn't exist anymore 2011-11-13 13:19:16 -08:00
version.rb Up version for development 2012-03-28 22:08:55 -07:00
vm.rb Log the guest class chosen 2012-05-19 09:32:43 -07:00