| 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