Sha256: 5cbfeeb1eaa899ac4d32aff3a3769484fa162f84632821f8acf5cb961d176fa7
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
# coding: UTF-8 module Cocaine class CommandLine class PosixRunner def self.available? require 'posix/spawn' true rescue LoadError false end def self.supported? available? && !Cocaine::CommandLine.java? end def supported? self.class.supported? end def call(command, env = {}, options = {}) input, output = IO.pipe options[:out] = output with_modified_environment(env) do pid = spawn(env, command, options) output.close result = "" while partial_result = input.read(8192) result << partial_result end waitpid(pid) input.close result end end private def spawn(*args) POSIX::Spawn.spawn(*args) end def waitpid(pid) Process.waitpid(pid) end def with_modified_environment(env, &block) ClimateControl.modify(env, &block) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cocaine-0.5.4 | lib/cocaine/command_line/runners/posix_runner.rb |