class MCollective::PluginPackager::StandardDefinition - mcollective version 2.12.5

# class MCollective::PluginPackager::StandardDefinition

### Attributes

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

### Public Class Methods

new(configuration, mcdependency, plugintype) click to toggle source

       # File lib/mcollective/pluginpackager/standard_definition.rb
     7 def initialize(configuration, mcdependency, plugintype)
     8   @plugintype = plugintype
     9   @path = PluginPackager.get_plugin_path(configuration[:target])
    10   @packagedata = {}
    11   @revision = configuration[:revision] || 1
    12   @preinstall = configuration[:preinstall]
    13   @postinstall = configuration[:postinstall]
    14   @vendor = configuration[:vendor] || "Puppet Labs"
    15   @dependencies = configuration[:dependency] || []
    16   @target_path = File.expand_path(@path)
    17   @metadata, mcversion = PluginPackager.get_metadata(@path, @plugintype)
    18   @mcname = mcdependency[:mcname] || "mcollective"
    19   @mcversion = mcdependency[:mcversion] || mcversion
    20   @dependencies << {:name => "#{mcname}-common", :version => @mcversion}
    21   @metadata[:name] = (configuration[:pluginname] || @metadata[:name]).downcase.gsub(/\s+|_/, "-")
    22   @metadata[:version] = (configuration[:version] || @metadata[:version])
    23   identify_packages
    24 end

### Public Instance Methods

common() click to toggle source

Obtain list of common files

       # File lib/mcollective/pluginpackager/standard_definition.rb
    54 def common
    55   common = {:files => [],
    56             :dependencies => @dependencies.clone,
    57             :description => "Common libraries for #{@name} connector plugin"}
    58
    59   commondir = File.join(@path, "util")
    60   if PluginPackager.check_dir_present commondir
    61     common[:files] = Dir.glob(File.join(commondir, "*"))
    62     return common
    63   else
    64     return nil
    65   end
    66 end

identify_packages() click to toggle source

Identify present packages and populate the packagedata hash

       # File lib/mcollective/pluginpackager/standard_definition.rb
    27 def identify_packages
    28   common_package = common
    29   @packagedata[:common] = common_package if common_package
    30   plugin_package = plugin
    31   @packagedata[@plugintype.to_sym] = plugin_package if plugin_package
    32 end

plugin() click to toggle source

Obtain standard plugin files and dependencies

       # File lib/mcollective/pluginpackager/standard_definition.rb
    35 def plugin
    36   plugindata = {:files => [],
    37                 :dependencies => @dependencies.clone,
    38                 :description => "#{@name} #{@plugintype} plugin for the Marionette Collective."}
    39
    40   plugindir = File.join(@path, @plugintype.to_s)
    41   if PluginPackager.check_dir_present plugindir
    42     plugindata[:files] = Dir.glob(File.join(plugindir, "*"))
    43   else
    44     return nil
    45   end
    46
    47   plugindata[:plugindependency] = {:name => "#{@mcname}-#{@metadata[:name]}-common",
    48                                 :version => @metadata[:version],
    49                                 :revision => @revision} if @packagedata[:common]
    50   plugindata
    51 end