Merge pull request #329 from kentaro/permit-underscore-in-procfile
Permit hyphen for command name in Procfile
This commit is contained in:
commit
eaed989c75
8 files changed
+70
-5
No files matched your search
@@ -83,7 +83,7 @@ private
|
|||||||
|
|
||||||
def parse(filename)
|
def parse(filename)
|
||||||
File.read(filename).gsub("\r\n","\n").split("\n").map do |line|
|
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]
|
[$1, $2]
|
||||||
end
|
end
|
||||||
end.compact
|
end.compact
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ describe "Foreman::CLI", :fakefs do
|
|||||||
describe "check" do
|
describe "check" do
|
||||||
it "with a valid Procfile displays the jobs" do
|
it "with a valid Procfile displays the jobs" do
|
||||||
write_procfile
|
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
|
end
|
||||||
|
|
||||||
it "with a blank Procfile displays an error" do
|
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-alpha-1.conf")
|
||||||
mock(FileUtils).rm("/tmp/init/app-bravo.conf")
|
mock(FileUtils).rm("/tmp/init/app-bravo.conf")
|
||||||
mock(FileUtils).rm("/tmp/init/app-bravo-1.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
|
||||||
upstart.export
|
upstart.export
|
||||||
|
|||||||
@@ -16,8 +16,10 @@ describe Foreman::Procfile, :fakefs do
|
|||||||
it "loads a passed-in Procfile" do
|
it "loads a passed-in Procfile" do
|
||||||
write_procfile
|
write_procfile
|
||||||
procfile = Foreman::Procfile.new("Procfile")
|
procfile = Foreman::Procfile.new("Procfile")
|
||||||
procfile["alpha"].should == "./alpha"
|
procfile["alpha"].should == "./alpha"
|
||||||
procfile["bravo"].should == "./bravo"
|
procfile["bravo"].should == "./bravo"
|
||||||
|
procfile["foo-bar"].should == "./foo-bar"
|
||||||
|
procfile["foo_bar"].should == "./foo_bar"
|
||||||
end
|
end
|
||||||
|
|
||||||
it "can have a process appended to it" do
|
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"
|
process.group = "app-bravo"
|
||||||
end
|
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
|
end
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
# ----- foreman app processes -----
|
# ----- 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'
|
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'
|
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 -----
|
# ----- end foreman app processes -----
|
||||||
@@ -19,6 +19,26 @@ stderr_logfile=/var/log/app/bravo-1.error.log
|
|||||||
user=app
|
user=app
|
||||||
directory=/tmp/app
|
directory=/tmp/app
|
||||||
environment=PORT=5100
|
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]
|
[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 "alpha: ./alpha" + " #{alpha_env}".rstrip
|
||||||
file.puts "\n"
|
file.puts "\n"
|
||||||
file.puts "bravo:\t./bravo"
|
file.puts "bravo:\t./bravo"
|
||||||
|
file.puts "foo_bar:\t./foo_bar"
|
||||||
|
file.puts "foo-bar:\t./foo-bar"
|
||||||
end
|
end
|
||||||
File.expand_path(procfile)
|
File.expand_path(procfile)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in new issue
Block a user