Parent

Cocaine::CommandLine

Attributes

logger[RW]
runner[RW]
exit_status[R]
runner[R]

Public Class Methods

environment() click to toggle source
# File lib/cocaine/command_line.rb, line 17
def environment
  @supplemental_environment ||= {}
end
fake!() click to toggle source
# File lib/cocaine/command_line.rb, line 29
def fake!
  @runner = FakeRunner.new
end
java?() click to toggle source
# File lib/cocaine/command_line.rb, line 37
def java?
  RUBY_PLATFORM =~ /java/
end
new(binary, params = "", options = {}) click to toggle source
# File lib/cocaine/command_line.rb, line 54
def initialize(binary, params = "", options = {})
  @binary            = binary.dup
  @params            = params.dup
  @options           = options.dup
  @runner            = @options.delete(:runner) || self.class.runner
  @logger            = @options.delete(:logger) || self.class.logger
  @swallow_stderr    = @options.delete(:swallow_stderr)
  @expected_outcodes = @options.delete(:expected_outcodes) || [0]
  @environment       = @options.delete(:environment) || {}
  @runner_options    = @options.delete(:runner_options) || {}
end
path() click to toggle source
# File lib/cocaine/command_line.rb, line 7
def path
  @supplemental_path
end
path=(supplemental_path) click to toggle source
# File lib/cocaine/command_line.rb, line 11
def path=(supplemental_path)
  @supplemental_path = supplemental_path
  @supplemental_environment ||= {}
  @supplemental_environment['PATH'] = (Array(supplemental_path) + [ENV['PATH']]).join(File::PATH_SEPARATOR)
end
runner_options() click to toggle source
# File lib/cocaine/command_line.rb, line 25
def runner_options
  @default_runner_options ||= {}
end
unfake!() click to toggle source
# File lib/cocaine/command_line.rb, line 33
def unfake!
  @runner = nil
end

Public Instance Methods

command(interpolations = {}) click to toggle source
# File lib/cocaine/command_line.rb, line 66
def command(interpolations = {})
  cmd = [@binary, interpolate(@params, interpolations)]
  cmd << bit_bucket if @swallow_stderr
  cmd.join(" ").strip
end
run(interpolations = {}) click to toggle source
# File lib/cocaine/command_line.rb, line 72
def run(interpolations = {})
  output = ''
  @exit_status = nil
  begin
    full_command = command(interpolations)
    log("#{colored("Command")} :: #{full_command}")
    output = execute(full_command)
  rescue Errno::ENOENT => e
    raise Cocaine::CommandNotFoundError, e.message
  ensure
    @exit_status = $?.exitstatus if $?.respond_to?(:exitstatus)
  end

  if @exit_status == 127
    raise Cocaine::CommandNotFoundError
  end

  unless @expected_outcodes.include?(@exit_status)
    message = [
      "Command '#{full_command}' returned #{@exit_status}. Expected #{@expected_outcodes.join(", ")}",
      "Here is the command output:\n",
      output
    ].join("\n")
    raise Cocaine::ExitStatusError, message
  end
  output
end
unix?() click to toggle source
# File lib/cocaine/command_line.rb, line 100
def unix?
  RbConfig::CONFIG['host_os'] !~ /mswin|mingw/
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.