class PackerFiles::CentOS::Kickstart

Public Class Methods

new(filename) click to toggle source

Constructor. The Kickstart file name is the name of the file that will be written to.

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 13
def initialize(filename)
   @kickstart = filename
   create_file
end

Public Instance Methods

convert(obj, os_name) click to toggle source

Serializes the given object and write out the content in the output file.

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 20
def convert(obj, os_name)
   file     = erb_file(obj, os_name)
   content  = PackerFiles.evaluate_erb(file, { "obj" => obj })
   add_content(content)
end
eval_file(file_name, hash) click to toggle source

Evaluate a partially specified file name (should be in the Gem's file list though) and add the content to the @kickstart file

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 28
def eval_file(file_name, hash)
  erb_file = PackerFiles.DirPath(file_name).first
  content  = PackerFiles.evaluate_erb(erb_file, hash)
  add_content(content)
end

Private Instance Methods

add_content(content) click to toggle source

Add content to the preseed file

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 58
def add_content(content)
  File.open(@kickstart, 'a') {|f| f.write(content) }
end
create_file() click to toggle source

Create a new file with no content

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 50
def create_file
  basename = File.dirname(@kickstart)
  FileUtils.mkdir_p(basename) if !Dir.exist?(basename)
  File.open(@kickstart, 'w') {|f| f.write ''}
end
erb_file(obj, os_name) click to toggle source

Given an object, figure out the class name and return back the correct erb file name.

# File lib/PackerFiles/OS/CentOS/Kickstart.rb, line 37
def erb_file(obj, os_name)

  erb_file = File.join(os_name, obj.class.name.gsub(/.*::/,'') + '_erb.rb')
  erb_path = PackerFiles.DirPath(erb_file)
  
  if erb_path.nil? || erb_path.empty?
     raise RuntimeError.new("Template Path #{erb_file} does not exist")
  end
  return erb_path.first
end