Module: Executable

Included in:
BaseProvision, ScriptExecutor
Defined in:
lib/script_executor/executable.rb

Instance Method Summary collapse

Instance Method Details

#execute(params = {}, &code) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/script_executor/executable.rb', line 6

def execute(params={}, &code)
  params = params.clone # try not to destroy external hash

  if params.class != Hash
    simple_commands = commands_from_object(params)
    params = {}
    script = simple_commands
  else
    script = params.delete(:script)
  end

  commands = locate_commands script, &code

  if commands.nil?
    output.puts 'No command was provided!'
  else
    commands = sudo(commands) if params[:sudo]

    params.delete(:sudo)

    remote = params.delete(:remote)
    line_action = params.delete(:line_action)

    if remote
      command = RemoteCommand.new params
    else
      command = LocalCommand.new params
    end

    command.execute commands, line_action
  end
end