class Simp::Media::Engine
Attributes
input[RW]
options[RW]
output[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/simp/media/engine.rb, line 34 def initialize(options = {}) { 'input_type' => 'internet', 'input' => nil, 'output_type' => 'control_repo', 'output' => 'file:///usr/share/simp/control-repo', 'url' => nil, 'embed' => true, 'license' => '/etc/simp/license.key', 'sign' => false, 'signing_key' => nil, 'metadata' => nil, 'branch' => 'production', 'destination_branch' => nil, 'edition' => 'community', 'channel' => 'stable', 'flavor' => 'default' }.each do |key, default_value| options[key] = default_value unless options.key?(key) end @cleanup = [] @options = options raise 'input_type must be specified' if options['input_type'].nil? raise 'output_type must be specified' if options['output_type'].nil? @input = Module.const_get("Simp::Media::Type::#{@options['input_type'].capitalize}").new(options, self) @output = Module.const_get("Simp::Media::Type::#{@options['output_type'].capitalize}").new(options, self) end
Public Instance Methods
cleanup()
click to toggle source
# File lib/simp/media/engine.rb, line 91 def cleanup @cleanup.each do |path| FileUtils.rmtree(path) end end
critical(output)
click to toggle source
# File lib/simp/media/engine.rb, line 30 def critical(output) Simp::Metadata.critical(output) end
debug1(output)
click to toggle source
# File lib/simp/media/engine.rb, line 14 def debug1(output) Simp::Metadata.debug1(output) end
debug2(output)
click to toggle source
# File lib/simp/media/engine.rb, line 10 def debug2(output) Simp::Metadata.debug2(output) end
error(output)
click to toggle source
# File lib/simp/media/engine.rb, line 26 def error(output) Simp::Metadata.error(output) end
info(output)
click to toggle source
# File lib/simp/media/engine.rb, line 18 def info(output) Simp::Metadata.info(output) end
loaded?()
click to toggle source
# File lib/simp/media/engine.rb, line 87 def loaded? true end
run()
click to toggle source
# File lib/simp/media/engine.rb, line 62 def run # XXX ToDo: Need to not create a target_directory if an input directory exists if @output.target_directory.nil? target = Dir.mktmpdir('cachedir') @cleanup << target else target = @output.target_directory end # XXX ToDo: only set this if input is specified @input.input_directory = @options['input'] metadata = Simp::Metadata::Engine.new(nil, nil, @options['edition']) version = @options['version'] metadata.releases[version].components.each do |component| info("Adding #{component.name}") retval = @input.fetch_component(component, {}) @output.add_component(component, retval) end @output.finalize(nil) @input.cleanup @output.cleanup cleanup end
warning(output)
click to toggle source
# File lib/simp/media/engine.rb, line 22 def warning(output) Simp::Metadata.warning(output) end