# File lib/cocaine/command_line/runners/process_runner.rb, line 5 def self.available? Process.respond_to?(:spawn) end
# File lib/cocaine/command_line/runners/process_runner.rb, line 9 def self.supported? available? && !Cocaine::CommandLine.java? end
# File lib/cocaine/command_line/runners/process_runner.rb, line 17 def call(command, env = {}) input, output = IO.pipe pid = spawn(env, command, :out => output) output.close result = input.read waitpid(pid) input.close result end
# File lib/cocaine/command_line/runners/process_runner.rb, line 13 def supported? self.class.supported? end
# File lib/cocaine/command_line/runners/process_runner.rb, line 29 def spawn(*args) Process.spawn(*args) end
# File lib/cocaine/command_line/runners/process_runner.rb, line 33 def waitpid(pid) begin Process.waitpid(pid) rescue Errno::ECHILD => e # In JRuby, waiting on a finished pid raises. end end