38 lines
751 B
Ruby
38 lines
751 B
Ruby
module L4dServer
|
|
class ConfigGenerator
|
|
def self.generate(server)
|
|
new(server).generate
|
|
end
|
|
|
|
def initialize(server)
|
|
@server = server
|
|
@template = server.server_template
|
|
end
|
|
|
|
def generate
|
|
config_path = config_file_path
|
|
config_dir = File.dirname(config_path)
|
|
|
|
FileUtils.mkdir_p(config_dir) unless Dir.exist?(config_dir)
|
|
|
|
File.write(config_path, render_config)
|
|
config_path
|
|
end
|
|
|
|
def config_file_path
|
|
"/opt/l4d2/servers/#{@server.id}/server.cfg"
|
|
end
|
|
|
|
private
|
|
|
|
def render_config
|
|
lines = []
|
|
|
|
@template.config_options.each do |option|
|
|
lines << "#{option.config_key} \"#{option.config_value}\""
|
|
end
|
|
|
|
lines.join("\n")
|
|
end
|
|
end
|
|
end
|