Module: Bake::Blocks::HasExecuteCommand

Included in:
CommandLine, Docu, Makefile
Defined in:
lib/blocks/has_execute_command.rb

Instance Method Summary collapse

Instance Method Details

#executeCommand(commandLine, ignoreStr = nil, exitCodeArray = [0]) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/blocks/has_execute_command.rb', line 7

def executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0])
  puts commandLine if Bake.options.verbose >= 1
  puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
  cmd_result = false
  output = ""
  begin
    Dir.chdir(@projectDir) do
      cmd_result, output = ProcessHelper.run([commandLine], true, true, nil, exitCodeArray)
    end
  rescue Exception=>e
    puts e.message
    puts e.backtrace if Bake.options.debug
  end
    
  if (cmd_result == false and (not ignoreStr or not output.include?ignoreStr))
    Bake.formatter.printError("Command \"#{commandLine}\" failed", @config)
    puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
    raise SystemCommandFailed.new
  end
  return cmd_result
end