add supervisord export engine
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
<%
|
||||||
|
engine.procfile.entries.each do |process|
|
||||||
|
next if (conc = self.concurrency[process.name]) < 1
|
||||||
|
1.upto(self.concurrency[process.name]) do |num|
|
||||||
|
port = engine.port_for(process, num, self.port)
|
||||||
|
%>
|
||||||
[program:<%= app %>-<%= process.name %>]
|
[program:<%= app %>-<%= process.name %>]
|
||||||
command=<%= process.command %>
|
command=<%= process.command %>
|
||||||
autostart=true
|
autostart=true
|
||||||
@@ -7,4 +13,8 @@ stdout_logfile=<%= log_root %>/<%=process.name%>-<%=num%>.log
|
|||||||
stderr_logfile=<%= log_root %>/<%=process.name%>-<%=num%>err.log
|
stderr_logfile=<%= log_root %>/<%=process.name%>-<%=num%>err.log
|
||||||
user=<%= user %>
|
user=<%= user %>
|
||||||
directory=<%= engine.directory %>
|
directory=<%= engine.directory %>
|
||||||
environment=<% engine.environment.each_pair { |var,env| "#{var.upcase}=#{env}" }.join(',') %>
|
environment=<% engine.environment.each_pair { |var,env| "#{var.upcase}=#{env}" }.join(',') %>,<%= "PORT=#{port}" %>
|
||||||
|
<%
|
||||||
|
end
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
require "erb"
|
||||||
|
require "foreman/export"
|
||||||
|
|
||||||
|
class Foreman::Export::Supervisord < Foreman::Export::Base
|
||||||
|
|
||||||
|
def export
|
||||||
|
error("Must specify a location") unless location
|
||||||
|
|
||||||
|
FileUtils.mkdir_p location
|
||||||
|
|
||||||
|
app = self.app || File.basename(engine.directory)
|
||||||
|
user = self.user || app
|
||||||
|
log_root = self.log || "/var/log/#{app}"
|
||||||
|
template_root = self.template
|
||||||
|
|
||||||
|
Dir["#{location}/#{app}*.conf"].each do |file|
|
||||||
|
say "cleaning up: #{file}"
|
||||||
|
FileUtils.rm(file)
|
||||||
|
end
|
||||||
|
|
||||||
|
master_template = export_template("supervisord", "master.conf.erb", template_root)
|
||||||
|
master_config = ERB.new(master_template).result(binding)
|
||||||
|
write_file "#{location}/#{app}.conf", master_config
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user