| 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: def definition.get_binding
58: binding
59: end
60:
61: cost = 40
62:
63: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions)
64:
65: for repo in @appliance_config.repos
66: if repo.keys.include?('mirrorlist')
67: urltype = 'mirrorlist'
68: else
69: urltype = 'baseurl'
70: end
71:
72: substitutions = {
73: /#ARCH#/ => @appliance_config.hardware.arch,
74: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch,
75: /#OS_VERSION#/ => @appliance_config.os.version,
76: /#OS_NAME#/ => @appliance_config.os.name
77: }
78:
79: url = repo[urltype]
80: name = repo['name']
81:
82: substitutions.each do |key, value|
83: url = url.gsub(key, value)
84: name = name.gsub(key, value)
85: end
86:
87: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}"
88:
89: cost += 1
90: end
91:
92: definition
93: 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: def definition.get_binding
58: binding
59: end
60:
61: cost = 40
62:
63: definition['mount_points'] = @linux_helper.partition_mount_points(@appliance_config.hardware.partitions)
64:
65: for repo in @appliance_config.repos
66: if repo.keys.include?('mirrorlist')
67: urltype = 'mirrorlist'
68: else
69: urltype = 'baseurl'
70: end
71:
72: substitutions = {
73: /#ARCH#/ => @appliance_config.hardware.arch,
74: /#BASE_ARCH#/ => @appliance_config.hardware.base_arch,
75: /#OS_VERSION#/ => @appliance_config.os.version,
76: /#OS_NAME#/ => @appliance_config.os.name
77: }
78:
79: url = repo[urltype]
80: name = repo['name']
81:
82: substitutions.each do |key, value|
83: url = url.gsub(key, value)
84: name = name.gsub(key, value)
85: end
86:
87: definition['repos'] << "repo --name=#{name} --cost=#{cost} --#{urltype}=#{url}"
88:
89: cost += 1
90: end
91:
92: definition
93: 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.get_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.get_binding)
41: File.open(@kickstart_file, 'w') { |f| f.write(kickstart) }
42:
43: @kickstart_file
44: end