Class | BoxGrinder::Kickstart |
In: |
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb |
Parent: | Object |
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 27 27: def initialize(config, appliance_config, dir, options = {}) 28: @config = config 29: @appliance_config = appliance_config 30: @dir = dir 31: @log = options[:log] || Logger.new(STDOUT) 32: 33: @linux_helper = LinuxHelper.new(:log => @log) 34: 35: @kickstart_file = "#{@dir.tmp}/#{@appliance_config.name}.ks" 36: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 27 27: def initialize(config, appliance_config, dir, options = {}) 28: @config = config 29: @appliance_config = appliance_config 30: @dir = dir 31: @log = options[:log] || Logger.new(STDOUT) 32: 33: @linux_helper = LinuxHelper.new(:log => @log) 34: 35: @kickstart_file = "#{@dir.tmp}/#{@appliance_config.name}.ks" 36: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 46 46: def build_definition 47: definition = {} 48: 49: definition['appliance_config'] = @appliance_config 50: definition['repos'] = [] 51: definition['graphical'] = (@appliance_config.packages.include?( '@base-x' ) or @appliance_config.packages.include?( '@X Window System' )) ? true : false 52: 53: def definition.method_missing(sym, * args) 54: self[sym.to_s] 55: end 56: 57: cost = 40 58: 59: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions) 60: 61: for repo in @appliance_config.repos 62: if repo.keys.include?('mirrorlist') 63: urltype = 'mirrorlist' 64: else 65: urltype = 'baseurl' 66: end 67: 68: substitutions = { 69: /#ARCH#/ => @appliance_config.hardware.arch, 70: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch, 71: /#OS_VERSION#/ => @appliance_config.os.version, 72: /#OS_NAME#/ => @appliance_config.os.name 73: } 74: 75: url = repo[urltype] 76: name = repo['name'] 77: 78: substitutions.each do |key, value| 79: url = url.gsub(key, value) 80: name = name.gsub(key, value) 81: end 82: 83: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}" 84: 85: cost += 1 86: end 87: 88: definition 89: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 46 46: def build_definition 47: definition = {} 48: 49: definition['appliance_config'] = @appliance_config 50: definition['repos'] = [] 51: definition['graphical'] = (@appliance_config.packages.include?( '@base-x' ) or @appliance_config.packages.include?( '@X Window System' )) ? true : false 52: 53: def definition.method_missing(sym, * args) 54: self[sym.to_s] 55: end 56: 57: cost = 40 58: 59: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions) 60: 61: for repo in @appliance_config.repos 62: if repo.keys.include?('mirrorlist') 63: urltype = 'mirrorlist' 64: else 65: urltype = 'baseurl' 66: end 67: 68: substitutions = { 69: /#ARCH#/ => @appliance_config.hardware.arch, 70: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch, 71: /#OS_VERSION#/ => @appliance_config.os.version, 72: /#OS_NAME#/ => @appliance_config.os.name 73: } 74: 75: url = repo[urltype] 76: name = repo['name'] 77: 78: substitutions.each do |key, value| 79: url = url.gsub(key, value) 80: name = name.gsub(key, value) 81: end 82: 83: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}" 84: 85: cost += 1 86: end 87: 88: definition 89: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 38 38: def create 39: template = "#{File.dirname(__FILE__)}/src/appliance.ks.erb" 40: kickstart = ERB.new(File.read(template)).result(build_definition.send(:binding)) 41: File.open(@kickstart_file, 'w') { |f| f.write(kickstart) } 42: 43: @kickstart_file 44: end
# File lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb, line 38 38: def create 39: template = "#{File.dirname(__FILE__)}/src/appliance.ks.erb" 40: kickstart = ERB.new(File.read(template)).result(build_definition.send(:binding)) 41: File.open(@kickstart_file, 'w') { |f| f.write(kickstart) } 42: 43: @kickstart_file 44: end