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