# class MCollective::PluginPackager::StandardDefinition

### Attributes

dependencies[RW]
iteration[RW]
mcname[RW]
mcversion[RW]
metadata[RW]
packagedata[RW]
path[RW]
plugintype[RW]
postinstall[RW]
preinstall[RW]
target_path[RW]
vendor[RW]

### Public Class Methods

new(path, name, vendor, preinstall, postinstall, iteration, dependencies, mcdependency, plugintype) click to toggle source

    # File lib/mcollective/pluginpackager/standard_definition.rb, line 7
    def initialize(path, name, vendor, preinstall, postinstall, iteration, dependencies, mcdependency, plugintype)
      @plugintype = plugintype
      @path = path
      @packagedata = {}
      @iteration = iteration || 1
      @preinstall = preinstall
      @postinstall = postinstall
      @vendor = vendor || "Puppet Labs"
      @dependencies = dependencies || []
      @target_path = File.expand_path(@path)
      @metadata, mcversion = PluginPackager.get_metadata(@path, @plugintype)

      @mcname = mcdependency[:mcname] || "mcollective"
      @mcversion = mcdependency[:mcversion] || mcversion
      @dependencies << {:name => "#{mcname}-common", :version => @mcversion}
      @metadata[:name] = (name || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
      identify_packages
    end

### Public Instance Methods

common() click to toggle source

Obtain list of common files

    # File lib/mcollective/pluginpackager/standard_definition.rb, line 54
    def common
      common = {:files => [],
                :dependencies => @dependencies.clone,
                :description => "Common libraries for #{@name} connector plugin"}

      commondir = File.join(@path, "util")
      if PluginPackager.check_dir_present commondir
        common[:files] = Dir.glob(File.join(commondir, "*"))
        return common
      else
        return nil
      end
    end

identify_packages() click to toggle source

Identify present packages and populate the packagedata hash

    # File lib/mcollective/pluginpackager/standard_definition.rb, line 27
    def identify_packages
      common_package = common
      @packagedata[:common] = common_package if common_package
      plugin_package = plugin
      @packagedata[@plugintype] = plugin_package if plugin_package
    end

plugin() click to toggle source

Obtain standard plugin files and dependencies

    # File lib/mcollective/pluginpackager/standard_definition.rb, line 35
    def plugin
      plugindata = {:files => [],
                    :dependencies => @dependencies.clone,
                    :description => "#{@name} #{@plugintype} plugin for the Marionette Collective."}

      plugindir = File.join(@path, @plugintype.to_s)
      if PluginPackager.check_dir_present plugindir
        plugindata[:files] = Dir.glob(File.join(plugindir, "*"))
      else
        return nil
      end

      plugindata[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common",
                                    :version => @metadata[:version],
                                    :iteration => @iteration} if @packagedata[:common]
      plugindata
    end