Method: ModuleSync.manage_file

Defined in:
lib/modulesync.rb

.manage_file(puppet_module, filename, settings, options) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/modulesync.rb', line 93

def self.manage_file(puppet_module, filename, settings, options)
  configs = settings.build_file_configs(filename)
  target_file = puppet_module.path(filename)
  if configs['delete']
    Renderer.remove(target_file)
  else
    template_file = local_file(options[:configs], filename)
    begin
      erb = Renderer.build(template_file)
      # Meta data passed to the template as @metadata[:name]
       = {
        module_name: settings.additional_settings[:puppet_module],
        namespace: settings.additional_settings[:namespace],
        workdir: puppet_module.working_directory,
        target_file: target_file,
      }
      template = Renderer.render(erb, configs, )
      mode = File.stat(template_file).mode
      Renderer.sync(template, target_file, mode)
    rescue StandardError
      warn "#{puppet_module.given_name}: Error while rendering file: '#{filename}'"
      raise
    end
  end
end