class R10K::Util::Subprocess::Runner::Windows

Run processes on Windows.

This implementation relies on Open3.capture3 to run commands and capture results. In contrast to the POSIX runner this cannot be used in an asynchronous manner as-is; implementing that will probably mean launching a thread and invoking capture3 in that thread.

Public Class Methods

new(argv) click to toggle source
# File lib/r10k/util/subprocess/runner/windows.rb, line 12
def initialize(argv)
  @argv = argv
end

Public Instance Methods

run() click to toggle source
# File lib/r10k/util/subprocess/runner/windows.rb, line 16
def run
  spawn_opts = @cwd ? {:chdir => @cwd} : {}
  stdout, stderr, status = Open3.capture3(*@argv, spawn_opts)
  @result = R10K::Util::Subprocess::Result.new(@argv, stdout, stderr, status.exitstatus)
rescue Errno::ENOENT, Errno::EACCES => e
  @result = R10K::Util::Subprocess::Result.new(@argv, '', e.message, 255)
end