Sha256: 2c275bda3a0359617bdd9176b0857e78f70a1b97eced7e374f058ab0acb26adf
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
module Cxxproject class ProcessHelper @@pid = nil def self.readOutput(sp, rd, wr) wr.close consoleOutput = "" begin while not rd.eof? tmp = rd.read(1000) if (tmp != nil) consoleOutput << tmp end end rescue Exception=>e # Seems to be a bug in ruby: sometimes there is a bad file descriptor on Windows instead of eof, which causes # an exception on read(). However, this happens not before everything is read, so there is no practical difference # how to "break" the loop. # This problem occurs on Windows command shell and Cygwin. end Process.wait(sp) rd.close # seems that pipe cannot handle non-ascii characters right on windows (even with correct encoding) consoleOutput.gsub!(/\xE2\x80\x98/,"`") # ÔÇÿ consoleOutput.gsub!(/\xE2\x80\x99/,"'") # ÔÇÖ consoleOutput end def self.spawnProcess(cmdLine) return system(cmdLine) if Cxxproject::Utils.old_ruby? @@pid = spawn(cmdLine) pid, status = Process.wait2(@@pid) @@pid = nil status.success? end def self.killProcess begin Process.kill("KILL",@@pid) rescue end @@pid = nil end def self.safeExecute begin consoleOutput = yield [$?.success?, consoleOutput, false] rescue Exception => e [false, e.message, true] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cxxproject-0.5.64 | lib/cxxproject/utils/process.rb |
cxxproject-0.5.63 | lib/cxxproject/utils/process.rb |
cxxproject-0.5.62 | lib/cxxproject/utils/process.rb |