compatibility with ruby 1.8

This commit is contained in:
David Dollar
2011-12-22 16:33:49 -05:00
parent 356c61f471
commit 0c27f78d46
2 changed files with 15 additions and 3 deletions

View File

@@ -115,7 +115,7 @@ private ######################################################################
print "#{Time.now.strftime("%H:%M:%S")} #{pad_process_name(name)} | "
print Term::ANSIColor.reset
print message.chomp
puts
puts ""
end
def print(message=nil)

View File

@@ -27,9 +27,21 @@ class Foreman::Process
private
def fork_with_io(command)
io = case RUBY_VERSION
when /^1\.9\./
IO.popen([Foreman.runner, replace_command_env(command)], "w+")
when /^1\.8\./
full_command = replace_command_env(command).gsub("'", "\\'")
IO.popen("#{Foreman.runner} '#{full_command}'", "w+")
else
raise "Unknown Ruby version: #{RUBY_VERSION}"
end
[ io, io.pid ]
end
def run_process(command, pipe)
io = IO.popen([Foreman.runner, replace_command_env(command)], "w+")
@pid = io.pid
io, @pid = fork_with_io(command)
trap("SIGTERM") { "got sigterm for %d" % @pid }
output pipe, "started with pid %d" % @pid
Thread.new do