# File lib/cocaine/command_line/runners/posix_runner.rb, line 5 def self.available? begin require 'posix/spawn' true rescue LoadError => e false end end
# File lib/cocaine/command_line/runners/posix_runner.rb, line 14 def self.supported? available? && !Cocaine::CommandLine.java? end
# File lib/cocaine/command_line/runners/posix_runner.rb, line 22 def call(command, env = {}) input, output = IO.pipe pid = spawn(env, command, :out => output) output.close result = "" while partial_result = input.read(8192) result << partial_result end waitpid(pid) input.close result end
# File lib/cocaine/command_line/runners/posix_runner.rb, line 18 def supported? self.class.supported? end
# File lib/cocaine/command_line/runners/posix_runner.rb, line 37 def spawn(*args) POSIX::Spawn.spawn(*args) end
# File lib/cocaine/command_line/runners/posix_runner.rb, line 41 def waitpid(pid) Process.waitpid(pid) end