Compare commits
5 Commits
v0.28.0.pr
...
v0.30.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc95936327 | ||
|
|
0c27f78d46 | ||
|
|
356c61f471 | ||
|
|
dcff4da220 | ||
|
|
888520ee99 |
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
foreman (0.28.0.pre1)
|
||||
foreman (0.30.0)
|
||||
term-ansicolor (~> 1.0.5)
|
||||
thor (>= 0.13.6)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -16,7 +16,7 @@ class Foreman::Process
|
||||
def run(pipe, basedir, environment)
|
||||
Dir.chdir(basedir) do
|
||||
with_environment(environment.merge("PORT" => port.to_s)) do
|
||||
run_process entry.command
|
||||
run_process entry.command, pipe
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -27,9 +27,21 @@ class Foreman::Process
|
||||
|
||||
private
|
||||
|
||||
def run_process(command)
|
||||
io = IO.popen([Foreman.runner, replace_command_env(command)], "w+")
|
||||
@pid = io.pid
|
||||
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, @pid = fork_with_io(command)
|
||||
trap("SIGTERM") { "got sigterm for %d" % @pid }
|
||||
output pipe, "started with pid %d" % @pid
|
||||
Thread.new do
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module Foreman
|
||||
|
||||
VERSION = "0.28.0.pre1"
|
||||
VERSION = "0.30.0"
|
||||
|
||||
end
|
||||
|
||||
@@ -24,8 +24,8 @@ describe "Foreman::Engine" do
|
||||
describe "start" do
|
||||
it "forks the processes" do
|
||||
write_procfile
|
||||
mock.instance_of(Foreman::Process).run_process("./alpha")
|
||||
mock.instance_of(Foreman::Process).run_process("./bravo")
|
||||
mock.instance_of(Foreman::Process).run_process("./alpha", is_a(IO))
|
||||
mock.instance_of(Foreman::Process).run_process("./bravo", is_a(IO))
|
||||
mock(subject).watch_for_output
|
||||
mock(subject).watch_for_termination
|
||||
subject.start
|
||||
@@ -34,8 +34,8 @@ describe "Foreman::Engine" do
|
||||
it "handles concurrency" do
|
||||
write_procfile
|
||||
engine = Foreman::Engine.new("Procfile",:concurrency => "alpha=2")
|
||||
mock.instance_of(Foreman::Process).run_process("./alpha").twice
|
||||
mock.instance_of(Foreman::Process).run_process("./bravo")
|
||||
mock.instance_of(Foreman::Process).run_process("./alpha", is_a(IO)).twice
|
||||
mock.instance_of(Foreman::Process).run_process("./bravo", is_a(IO))
|
||||
mock(engine).watch_for_output
|
||||
mock(engine).watch_for_termination
|
||||
engine.start
|
||||
|
||||
Reference in New Issue
Block a user