module Bake::Blocks::HasExecuteCommand

Attributes

config[R]

Public Instance Methods

executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0], echo = "on") click to toggle source
# File lib/blocks/has_execute_command.rb, line 8
def executeCommand(commandLine, ignoreStr=nil, exitCodeArray = [0], echo = "on")
  if Bake.options.dry
    puts commandLine
    return true
  end

  puts commandLine if (Bake.options.verbose >= 1 && echo != "off") || Bake.options.verbose >= 3
  puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
  cmd_result = false
  output = ""
  begin
    cmd_result, output = ProcessHelper.run([commandLine], true, true, nil, exitCodeArray, @projectDir)
  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