Class BoxGrinder::Kickstart
In: lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
Parent: Object

Methods

Public Class methods

[Source]

    # 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

[Source]

    # 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

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Validate]