Sha256: 93d5c3aaf9197c0c1ffed850d2015cdebdbb0cc2d504ade0542ccfb376976750

Contents?: true

Size: 1.01 KB

Versions: 39

Compression:

Stored size: 1.01 KB

Contents

module Sprout #:nodoc:
  class ProcessRunnerError < StandardError # :nodoc:
  end
  
  class ProcessRunner #:nodoc:
    attr_reader :pid,
                :r,
                :w,
                :e
    
    def initialize(*command)
      @command = command
      begin
        usr = User.new()
        if(usr.is_a?(WinUser) && !usr.is_a?(CygwinUser))
          require 'win32/open3'
          Open3.popen3(*@command) do |w, r, e, pid|
          	@w = w
          	@r = r
          	@e = e
          	@pid = pid
          end
        else
          require 'open4'
          @pid, @w, @r, @e = open4.popen4(*@command)
        end
      rescue Errno::ENOENT => e
        part = command[0].split(' ').shift
        raise ProcessRunnerError.new("The expected executable was not found for command [#{part}], please check your system path and/or sprout definition")
      end
    end
    
    def puts(msg)
      @w.puts(msg)
    end

    def read
      return r.read
    end
    
    def read_err
      return e.read
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
sprout-0.7.153-darwin lib/sprout/process_runner.rb
sprout-0.7.156-darwin lib/sprout/process_runner.rb
sprout-0.7.159-x86-linux lib/sprout/process_runner.rb
sprout-0.7.153 lib/sprout/process_runner.rb
sprout-0.7.157-darwin lib/sprout/process_runner.rb
sprout-0.7.157-x86-linux lib/sprout/process_runner.rb
sprout-0.7.157 lib/sprout/process_runner.rb
sprout-0.7.156-x86-linux lib/sprout/process_runner.rb
sprout-0.7.153-x86-linux lib/sprout/process_runner.rb
sprout-0.7.156 lib/sprout/process_runner.rb
sprout-0.7.159-darwin lib/sprout/process_runner.rb
sprout-0.7.162-x86-linux lib/sprout/process_runner.rb
sprout-0.7.163-x86-linux lib/sprout/process_runner.rb
sprout-0.7.162 lib/sprout/process_runner.rb
sprout-0.7.165-darwin lib/sprout/process_runner.rb
sprout-0.7.163-darwin lib/sprout/process_runner.rb
sprout-0.7.159 lib/sprout/process_runner.rb
sprout-0.7.163 lib/sprout/process_runner.rb
sprout-0.7.162-darwin lib/sprout/process_runner.rb
sprout-0.7.167 lib/sprout/process_runner.rb