Merge pull request #329 from kentaro/permit-underscore-in-procfile
Permit hyphen for command name in Procfile
This commit is contained in:
@@ -83,7 +83,7 @@ private
|
||||
|
||||
def parse(filename)
|
||||
File.read(filename).gsub("\r\n","\n").split("\n").map do |line|
|
||||
if line =~ /^([A-Za-z0-9_]+):\s*(.+)$/
|
||||
if line =~ /^([A-Za-z0-9_-]+):\s*(.+)$/
|
||||
[$1, $2]
|
||||
end
|
||||
end.compact
|
||||
|
||||
@@ -50,7 +50,7 @@ describe "Foreman::CLI", :fakefs do
|
||||
describe "check" do
|
||||
it "with a valid Procfile displays the jobs" do
|
||||
write_procfile
|
||||
foreman("check").should == "valid procfile detected (alpha, bravo)\n"
|
||||
foreman("check").should == "valid procfile detected (alpha, bravo, foo_bar, foo-bar)\n"
|
||||
end
|
||||
|
||||
it "with a blank Procfile displays an error" do
|
||||
|
||||
@@ -29,6 +29,10 @@ describe Foreman::Export::Upstart, :fakefs do
|
||||
mock(FileUtils).rm("/tmp/init/app-alpha-1.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-bravo.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-bravo-1.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-foo-bar.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-foo-bar-1.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-foo_bar.conf")
|
||||
mock(FileUtils).rm("/tmp/init/app-foo_bar-1.conf")
|
||||
|
||||
upstart.export
|
||||
upstart.export
|
||||
|
||||
@@ -16,8 +16,10 @@ describe Foreman::Procfile, :fakefs do
|
||||
it "loads a passed-in Procfile" do
|
||||
write_procfile
|
||||
procfile = Foreman::Procfile.new("Procfile")
|
||||
procfile["alpha"].should == "./alpha"
|
||||
procfile["bravo"].should == "./bravo"
|
||||
procfile["alpha"].should == "./alpha"
|
||||
procfile["bravo"].should == "./bravo"
|
||||
procfile["foo-bar"].should == "./foo-bar"
|
||||
procfile["foo_bar"].should == "./foo_bar"
|
||||
end
|
||||
|
||||
it "can have a process appended to it" do
|
||||
|
||||
@@ -42,5 +42,40 @@ Bluepill.application("app", :foreground => false, :log_file => "/var/log/bluepil
|
||||
process.group = "app-bravo"
|
||||
end
|
||||
|
||||
app.process("foo_bar-1") do |process|
|
||||
process.start_command = "./foo_bar"
|
||||
|
||||
process.working_dir = "/tmp/app"
|
||||
process.daemonize = true
|
||||
process.environment = {"PORT"=>"5200"}
|
||||
process.stop_signals = [:quit, 30.seconds, :term, 5.seconds, :kill]
|
||||
process.stop_grace_time = 45.seconds
|
||||
|
||||
process.stdout = process.stderr = "/var/log/app/app-foo_bar-1.log"
|
||||
|
||||
process.monitor_children do |children|
|
||||
children.stop_command "kill {{PID}}"
|
||||
end
|
||||
|
||||
process.group = "app-foo_bar"
|
||||
end
|
||||
|
||||
app.process("foo-bar-1") do |process|
|
||||
process.start_command = "./foo-bar"
|
||||
|
||||
process.working_dir = "/tmp/app"
|
||||
process.daemonize = true
|
||||
process.environment = {"PORT"=>"5300"}
|
||||
process.stop_signals = [:quit, 30.seconds, :term, 5.seconds, :kill]
|
||||
process.stop_grace_time = 45.seconds
|
||||
|
||||
process.stdout = process.stderr = "/var/log/app/app-foo-bar-1.log"
|
||||
|
||||
process.monitor_children do |children|
|
||||
|
||||
children.stop_command "kill {{PID}}"
|
||||
end
|
||||
|
||||
process.group = "app-foo-bar"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# ----- foreman app processes -----
|
||||
AP01:4:respawn:/bin/su - app -c 'cd /tmp/app;export PORT=5000;./alpha >> /var/log/app/alpha-1.log 2>&1'
|
||||
AP02:4:respawn:/bin/su - app -c 'cd /tmp/app;export PORT=5100;./bravo >> /var/log/app/bravo-1.log 2>&1'
|
||||
AP03:4:respawn:/bin/su - app -c 'cd /tmp/app;export PORT=5200;./foo_bar >> /var/log/app/foo_bar-1.log 2>&1'
|
||||
AP04:4:respawn:/bin/su - app -c 'cd /tmp/app;export PORT=5300;./foo-bar >> /var/log/app/foo-bar-1.log 2>&1'
|
||||
# ----- end foreman app processes -----
|
||||
|
||||
@@ -19,6 +19,26 @@ stderr_logfile=/var/log/app/bravo-1.error.log
|
||||
user=app
|
||||
directory=/tmp/app
|
||||
environment=PORT=5100
|
||||
[program:app-foo_bar-1]
|
||||
command=./foo_bar
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stopsignal=QUIT
|
||||
stdout_logfile=/var/log/app/foo_bar-1.log
|
||||
stderr_logfile=/var/log/app/foo_bar-1.error.log
|
||||
user=app
|
||||
directory=/tmp/app
|
||||
environment=PORT=5200
|
||||
[program:app-foo-bar-1]
|
||||
command=./foo-bar
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stopsignal=QUIT
|
||||
stdout_logfile=/var/log/app/foo-bar-1.log
|
||||
stderr_logfile=/var/log/app/foo-bar-1.error.log
|
||||
user=app
|
||||
directory=/tmp/app
|
||||
environment=PORT=5300
|
||||
|
||||
[group:app]
|
||||
programs=app-alpha-1,app-bravo-1
|
||||
programs=app-alpha-1,app-bravo-1,app-foo_bar-1,app-foo-bar-1
|
||||
|
||||
@@ -79,6 +79,8 @@ def write_procfile(procfile="Procfile", alpha_env="")
|
||||
file.puts "alpha: ./alpha" + " #{alpha_env}".rstrip
|
||||
file.puts "\n"
|
||||
file.puts "bravo:\t./bravo"
|
||||
file.puts "foo_bar:\t./foo_bar"
|
||||
file.puts "foo-bar:\t./foo-bar"
|
||||
end
|
||||
File.expand_path(procfile)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user