Class: VagrantPlugins::ShellCommander::Action

Inherits:
Object
  • Object
show all
Includes:
Vagrant::Action::Builtin
Defined in:
lib/vagrant-shell-commander/action.rb

Overview

Action for shell command hooking

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ Object

Constructor

Parameters:

  • app (Action)

    Next middleware to call

  • env (Hash)

    Action environment



15
16
17
18
19
# File 'lib/vagrant-shell-commander/action.rb', line 15

def initialize(app, env)
  @app       = app
  @env       = env
  @logger    = Log4r::Logger.new("vagrant::plugins::shell-commander::action")
end

Instance Method Details

#call(env) ⇒ Object

Call method of this middleware

Parameters:

  • env (Hash)

    Action environment

Returns:

  • nil



26
27
28
29
30
31
32
33
34
35
# File 'lib/vagrant-shell-commander/action.rb', line 26

def call(env)
  @logger.debug("hook fired for action #{@env[:action_name]}, machine_action: #{@env[:machine_action]}")
  @app.call(env)
  if @env[:machine] && @env[:machine].state.id != :poweroff &&
     ! @env[:machine].config.sh.after_share_folders.nil?
    @env[:machine].action(:ssh_run, 
                          ssh_run_command: @env[:machine].config.sh.after_share_folders,
                          ssh_opts: {extra_args: []})
  end
end