class MCollective::PluginPackager::DebpackagePackager

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/debpackage_packager.rb
 6 def initialize(plugin, pluginpath = nil, signature = nil, verbose = false, keep_artifacts = nil, module_template = nil)
 7   if PluginPackager.command_available?('debuild')
 8     @plugin = plugin
 9     @verbose = verbose
10     @libdir = pluginpath || '/usr/share/mcollective/plugins/mcollective/'
11     @signature = signature
12     @package_name = "#{@plugin.mcname}-#{@plugin.metadata[:name]}"
13     @keep_artifacts = keep_artifacts
14   else
15     raise("Cannot build package. 'debuild' is not present on the system.")
16   end
17 end

Public Instance Methods

create_packages() click to toggle source

Build process :

  • create buildroot

  • craete buildroot/debian

  • create the relative directories with package contents

  • create install files for each of the plugins that are going to be built

  • create debian build files

  • create tarball

  • create pre and post install files

  • run the build script

  • move packages to cwd

  • clean up

   # File lib/mcollective/pluginpackager/debpackage_packager.rb
30 def create_packages
31   begin
32     puts "Building packages for #{@package_name} plugin."
33 
34     @tmpdir = Dir.mktmpdir('mcollective_packager')
35     @build_dir = File.join(@tmpdir, "#{@package_name}_#{@plugin.metadata[:version]}")
36     Dir.mkdir(@build_dir)
37 
38     create_debian_dir
39     @plugin.packagedata.each do |type, data|
40       prepare_tmpdirs(data)
41       create_install_file(type, data)
42       create_pre_and_post_install(type)
43     end
44     create_debian_files
45     create_tar
46     run_build
47     move_packages
48 
49     puts "Completed building all packages for #{@package_name} plugin."
50   ensure
51     if @keep_artifacts
52       puts 'Keeping build artifacts.'
53       puts "Build artifacts saved - #{@tmpdir}"
54     else
55       puts 'Removing build artifacts.'
56       cleanup_tmpdirs
57     end
58   end
59 end