Sha256: 701d4b19e57f788ca0076587f32b5547397c625167284c31620ecaf56d953865

Contents?: true

Size: 1015 Bytes

Versions: 19

Compression:

Stored size: 1015 Bytes

Contents

module Vagrant
  class Action
    module VM
      class Provision
        def initialize(app, env)
          @app = app
          @env = env
          @env["provision.enabled"] = true if !@env.has_key?("provision.enabled")
        end

        def call(env)
          # Instantiate and prepare the provisioners. Preparation must happen here
          # so that shared folders and such can properly take effect.
          provisioners = enabled_provisioners
          provisioners.map { |p| p.prepare }

          @app.call(env)

          # Take prepared provisioners and run the provisioning
          provisioners.each do |instance|
            @env.ui.info I18n.t("vagrant.actions.vm.provision.beginning", :provisioner => instance.class)
            instance.provision!
          end
        end

        def enabled_provisioners
          @env["config"].vm.provisioners.map do |provisioner|
            provisioner.provisioner.new(@env, provisioner.config)
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
vagrantup-0.8.9 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.8 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.7 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.6 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.5 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.4 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.3 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.2 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.10 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.1 lib/vagrant/action/vm/provision.rb
vagrantup-0.8.0 lib/vagrant/action/vm/provision.rb
vagrant-0.8.10 lib/vagrant/action/vm/provision.rb
vagrant-0.8.8 lib/vagrant/action/vm/provision.rb
vagrant-0.8.7 lib/vagrant/action/vm/provision.rb
rvagrant-0.8.7.dev lib/vagrant/action/vm/provision.rb
vagrant-0.8.6 lib/vagrant/action/vm/provision.rb
vagrant-0.8.5 lib/vagrant/action/vm/provision.rb
vagrant-0.8.2 lib/vagrant/action/vm/provision.rb
vagrant-0.8.1 lib/vagrant/action/vm/provision.rb