Class: VagrantPlugins::Multiplug::Action::InstallPlugins

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant_plugins/multiplug/action/install_plugins.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ InstallPlugins

Returns a new instance of InstallPlugins.



5
6
7
# File 'lib/vagrant_plugins/multiplug/action/install_plugins.rb', line 5

def initialize(app, *)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/vagrant_plugins/multiplug/action/install_plugins.rb', line 9

def call(env)
  results = env[:machine].config.plugin.dependencies.map do |dependency|
    case
    when dependency.installed?
      false
    when system("vagrant plugin install #{dependency.name} #{dependency.options}")
      true
    else
      exit(1)
    end
  end
  restart if results.any?
  @app.call(env)
end