class Sv::Supervisor::Config

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/sv/supervisor/config.rb, line 11
def initialize(config)
  @config = config
end

Public Instance Methods

binding() click to toggle source
# File lib/sv/supervisor/config.rb, line 54
def binding
  opts = OpenStruct.new
  opts.socket_path = File.realdirpath config.socket_path
  opts.pidfile = File.realdirpath config.pidfile
  opts.logfile = File.realdirpath config.logfile
  opts.rendered_jobs = rendered_jobs
  opts.instance_eval { binding }
end
generate_config_file() click to toggle source
# File lib/sv/supervisor/config.rb, line 24
def generate_config_file
  erb = ERB.new(File.read(template), nil, '-')
  File.open(path, 'w') do |f|
    f.write erb.result(binding)
  end 
rescue => e
  raise ::Sv::Error, "unable to generate supervisor config"
end
generate_once() click to toggle source
# File lib/sv/supervisor/config.rb, line 33
def generate_once
  return if @config_generated
  generate_config_file
  @config_generated = true
end
generated_path() click to toggle source
# File lib/sv/supervisor/config.rb, line 19
def generated_path
  generate_once
  path
end
path() click to toggle source
# File lib/sv/supervisor/config.rb, line 15
def path
  @path ||= File.realdirpath "#{config.app_dir}/tmp/supervisor.conf"
end
rendered_jobs() click to toggle source
# File lib/sv/supervisor/config.rb, line 43
def rendered_jobs
  jobs = config.jobs
  jobs.inject("")  do |str, job|
    logger.debug "rendering #{job}"
    render = job.render 
    logger.debug render
    str << render if render
    str
  end
end
template() click to toggle source
# File lib/sv/supervisor/config.rb, line 39
def template
  "#{__dir__}/../templates/supervisor.conf.erb"
end