Sha256: 50d942fd4abf2dfb9d6a916def324e8823e983bf1df557d773f4ced4f625f575
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
require "foreman/configuration" require "foreman/export" class Foreman::Export::Upstart attr_reader :engine def initialize(engine) @engine = engine end def export(app) FileUtils.mkdir_p "/etc/foreman" FileUtils.mkdir_p "/etc/init" config = Foreman::Configuration.new(app) write_file "/etc/init/#{app}.conf", <<-UPSTART_MASTER pre-start script bash << "EOF" mkdir -p /var/log/#{app} if [ -f /etc/foreman/#{app}.conf ]; then source /etc/foreman/#{app}.conf fi for process in $( echo "$#{app}_processes" ); do process_count_config="#{app}_$process" process_count=${!process_count_config} for ((i=1; i<=${process_count:=1}; i+=1)); do start #{app}-$process NUM=$i done done EOF end script UPSTART_MASTER engine.processes.values.each do |process| write_file "/etc/init/#{app}-#{process.name}.conf", <<-UPSTART_CHILD instance $NUM stop on stopping #{app} respawn chdir #{engine.directory} exec #{process.command} >>/var/log/#{app}/#{process.name}.log 2>&1 UPSTART_CHILD end engine.processes.each do |name, process| config.scale(name, 1) end config.write end private ###################################################################### def write_file(filename, contents) File.open(filename, "w") do |file| file.puts contents end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
foreman-0.2.0 | lib/foreman/export/upstart.rb |
foreman-0.1.0 | lib/foreman/export/upstart.rb |
foreman-0.0.2 | lib/foreman/export/upstart.rb |