add windows support

This commit is contained in:
David Dollar
2012-01-22 19:47:57 -05:00
parent e993af2b20
commit 4ad49cb058
2 changed files with 11 additions and 3 deletions

View File

@@ -52,6 +52,7 @@ GEM
PLATFORMS
java
ruby
x86-mingw32
DEPENDENCIES
aws-s3

View File

@@ -30,23 +30,30 @@ private
defined?(RUBY_PLATFORM) and RUBY_PLATFORM == "java"
end
def windows?
defined?(RUBY_PLATFORM) and RUBY_PLATFORM =~ /(win|w)32$/
end
def fork_with_io(command, basedir)
reader, writer = IO.pipe
command = replace_command_env(command)
pid = if jruby?
pid = if windows?
Dir.chdir(basedir) do
Process.spawn command, :out => writer, :err => writer
end
elsif jruby?
require "posix/spawn"
POSIX::Spawn.spawn(Foreman.runner, "-d", basedir, command, {
:out => writer, :err => writer
})
else
fork do
trap("INT", "IGNORE")
writer.sync = true
$stdout.reopen writer
$stderr.reopen writer
reader.close
exec Foreman.runner, "-d", basedir, command
end
end
end
[ reader, pid ]
end