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

# class MCollective::PluginPackager::RpmpackagePackager

### Public Class Methods

new(plugin, pluginpath = nil, signature = nil, verbose = false, keep_artifacts = nil, module_template = nil) click to toggle source

       # File lib/mcollective/pluginpackager/rpmpackage_packager.rb
     6 def initialize(plugin, pluginpath = nil, signature = nil, verbose = false, keep_artifacts = nil, module_template = nil)
     7   if @buildtool = select_command
     8     @plugin = plugin
     9     @package_name = "#{@plugin.mcname}-#{@plugin.metadata[:name]}"
    10     @package_name_and_version = "#{@package_name}-#{@plugin.metadata[:version]}"
    11     @verbose = verbose
    12     @libdir = pluginpath || '/usr/libexec/mcollective/mcollective/'
    13     @signature = signature
    14     @rpmdir = rpmdir
    15     @srpmdir = srpmdir
    16     @keep_artifacts = keep_artifacts
    17   else
    18     raise("Cannot build package. 'rpmbuild' or 'rpmbuild-md5' is not present on the system")
    19   end
    20 end

### Public Instance Methods

create_packages() click to toggle source

Build Process :

- create temporary buildroot

- create the spec file

- create the tarball

- run the build script

- move pacakges to cwd

- clean up

       # File lib/mcollective/pluginpackager/rpmpackage_packager.rb
    48 def create_packages
    49   begin
    50     puts "Building packages for #{@package_name} plugin."
    51
    52     @tmpdir = Dir.mktmpdir('mcollective_packager')
    53     prepare_tmpdirs
    54
    55     make_spec_file
    56     run_build
    57     move_packages
    58
    59     puts "Completed building all packages for #{@package_name} plugin."
    60   ensure
    61     if @keep_artifacts
    62       puts 'Keeping build artifacts'
    63       puts "Build artifacts saved - #{@tmpdir}"
    64     else
    65       cleanup_tmpdirs
    66     end
    67   end
    68 end

rpmdir() click to toggle source

       # File lib/mcollective/pluginpackager/rpmpackage_packager.rb
    33 def rpmdir
    34   `rpm --eval '%_rpmdir'`.chomp
    35 end

select_command() click to toggle source

Determine the build tool present on the system

       # File lib/mcollective/pluginpackager/rpmpackage_packager.rb
    23 def select_command
    24   if PluginPackager.command_available?('rpmbuild-md5')
    25     return 'rpmbuild-md5'
    26   elsif PluginPackager.command_available?('rpmbuild')
    27     return 'rpmbuild'
    28   else
    29     return nil
    30   end
    31 end

srpmdir() click to toggle source

       # File lib/mcollective/pluginpackager/rpmpackage_packager.rb
    37 def srpmdir
    38   `rpm --eval '%_srcrpmdir'`.chomp
    39 end