Class: BoxGrinder::LocalPlugin

Inherits:
BasePlugin show all
Defined in:
lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb

Instance Attribute Summary

Attributes inherited from BasePlugin

#deliverables, #plugin_info

Instance Method Summary collapse

Methods inherited from BasePlugin

#current_platform, #init, #initialize, #is_supported_os?, #is_supported_platform?, #merge_plugin_config, #read_plugin_config, #register_deliverable, #register_supported_os, #register_supported_platform, #run, #set_default_config_value, #subtype, #supported_oses, #validate_plugin_config

Methods included from Plugins

#plugin

Constructor Details

This class inherits a constructor from BoxGrinder::BasePlugin

Instance Method Details

#after_initObject



27
28
29
# File 'lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb', line 27

def after_init
  @package_name = "#{@appliance_config.name}-#{@appliance_config.version}.#{@appliance_config.release}-#{@appliance_config.os.name}-#{@appliance_config.os.version}-#{@appliance_config.hardware.arch}-#{current_platform}.tgz"
end

#deliverables_exists?Boolean

Returns:

  • (Boolean)


58
59
60
61
62
63
64
65
66
67
68
# File 'lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb', line 58

def deliverables_exists?      
  return File.exists?("#{@plugin_config['path']}/#{@package_name}") if @plugin_config['package']

  @previous_deliverables.each_value do |file|
    return false unless File.exists?("#{@plugin_config['path']}/#{File.basename(file)}")
  end

  @move_deliverables = false

  true
end

#executeObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb', line 38

def execute
  if @plugin_config['overwrite'] or !deliverables_exists?
    FileUtils.mkdir_p @plugin_config['path']

    if @plugin_config['package']
      PackageHelper.new(@config, @appliance_config, :log => @log, :exec_helper => @exec_helper).package(File.dirname(@previous_deliverables[:disk]), "#{@plugin_config['path']}/#{@package_name}") if @plugin_config['package']
    else
      @log.debug "Copying files to '#{@plugin_config['path']}'..."

      @previous_deliverables.each_value do |file|
        @log.debug "Copying '#{file}'..."
        @exec_helper.execute("cp '#{file}' '#{@plugin_config['path']}'")
      end
      @log.info "Appliance delivered to '#{@plugin_config['path']}'."
    end
  else
    @log.info "Appliance already delivered to '#{@plugin_config['path']}'."
  end
end

#validateObject



31
32
33
34
35
36
# File 'lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb', line 31

def validate
  set_default_config_value('overwrite', false)
  set_default_config_value('package', true)

  validate_plugin_config(['path'], 'http://boxgrinder.org/tutorials/boxgrinder-build-plugins/#Local_delivery_plugin')
end