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