class TerraformDevKit::TemplateRenderer
Public Class Methods
new(env, project, extra_vars_proc = nil)
click to toggle source
# File lib/TerraformDevKit/template_renderer.rb, line 6 def initialize(env, project, extra_vars_proc = nil) @env = env @project = project @extra_vars_proc = extra_vars_proc || proc { {} } end
Public Instance Methods
render_files()
click to toggle source
# File lib/TerraformDevKit/template_renderer.rb, line 12 def render_files render_files_into_path(Dir['*.mustache']) template_dirs = Configuration.get('template-dirs') template_dirs.to_h.each do |dest, src| render_files_into_path(Dir[File.join(src, '*.mustache')], dest) end end
Private Instance Methods
render_files_into_path(file_list, dest_path = '.')
click to toggle source
# File lib/TerraformDevKit/template_renderer.rb, line 22 def render_files_into_path(file_list, dest_path = '.') aws_config = Configuration.get('aws') file_list.each do |fname| template_file = TemplateConfigFile.new( File.read(fname), @project, @env, aws_config, extra_vars: @extra_vars_proc.call(@env) ) config_fname = File.basename(fname, File.extname(fname)) Dir.chdir(@env.working_dir) do FileUtils.makedirs(dest_path) config_fname = File.join(dest_path, config_fname) File.open(config_fname, 'w') { |f| f.write(template_file.render) } end end end