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:       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

[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:       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

[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.get_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.get_binding)
41:       File.open(@kickstart_file, 'w') { |f| f.write(kickstart) }
42: 
43:       @kickstart_file
44:     end

[Validate]