diff --git a/lib/foreman/engine.rb b/lib/foreman/engine.rb index ae11203..ed54915 100644 --- a/lib/foreman/engine.rb +++ b/lib/foreman/engine.rb @@ -302,6 +302,10 @@ private def name_for(pid) process, index = @running[pid] + name_for_index(process, index) + end + + def name_for_index(process, index) [ @names[process], index.to_s ].compact.join(".") end @@ -350,7 +354,8 @@ private reader, writer = create_pipe begin pid = process.run(:output => writer, :env => { - "PORT" => port_for(process, n).to_s + "PORT" => port_for(process, n).to_s, + "PS" => name_for_index(process, n) }) writer.puts "started with pid #{pid}" rescue Errno::ENOENT diff --git a/spec/foreman/cli_spec.rb b/spec/foreman/cli_spec.rb index 1b81074..26cfa42 100644 --- a/spec/foreman/cli_spec.rb +++ b/spec/foreman/cli_spec.rb @@ -44,6 +44,13 @@ describe "Foreman::CLI", :fakefs do output.should =~ /test.1 \| testing/ end end + + it "sets PS variable with the process name" do + without_fakefs do + output = foreman("start -f #{resource_path("Procfile")}") + output.should =~ /ps.1 \| PS env var is ps.1/ + end + end end end diff --git a/spec/resources/Procfile b/spec/resources/Procfile index f4bcb95..8c7a324 100644 --- a/spec/resources/Procfile +++ b/spec/resources/Procfile @@ -2,3 +2,4 @@ echo: bin/echo echoing env: bin/env FOO test: bin/test utf8: bin/utf8 +ps: bin/echo PS env var is $PS