class PuppetModule::Pkg::Tasks::Packager

Attributes

modinfo[RW]

Public Class Methods

new(system) click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 5
def initialize(system)
  @sys = system
end

Public Instance Methods

package(mod, install_dir, pkg_dir, type, filename) click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 9
def package(mod, install_dir, pkg_dir, type, filename)
  self.modinfo = mod
  @install_dir = install_dir
  @pkg_dir = pkg_dir

  @type = type
  @filename = filename
  @sys.sh("fpm #{fpm_opts} #{installed_files}")
end

Private Instance Methods

arch() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 50
def arch
  "-a all"
end
chdir() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 84
def chdir
  "-C #{@install_dir}"
end
dependencies() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 70
def dependencies
  return "" unless modinfo.dependencies

  modinfo.dependencies.map do |dep|
    dep[:versions].map do |version_constraint|
      "-d 'puppet-mod-#{dep[:author]}-#{dep[:name]} #{version_constraint}'"
    end
  end
end
description() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 62
def description
  optionally('--description', modinfo.summary)
end
dest_fmt() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 96
def dest_fmt
  "-t #{@type}"
end
fpm_opts() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 23
def fpm_opts
  [ src_fmt,
    dest_fmt,
    name,
    version,
    arch,
    maintainer,
    url,
    description,
    license,
    dependencies,
    chdir,
    output ].join " "
end
installed_files() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 88
def installed_files
  "."
end
license() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 66
def license
  optionally('--license', modinfo.license)
end
maintainer() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 54
def maintainer
  optionally('-m', modinfo.author_full)
end
name() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 42
def name
  "-n #{pkg_name}"
end
optionally(switch, field) click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 100
def optionally(switch, field)
  field ? "#{switch} '#{field}'" : ""
end
output() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 92
def output
  "-p #{@pkg_dir}/#{@filename}"
end
pkg_name() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 38
def pkg_name
  "puppet-mod-#{modinfo.author}-#{modinfo.name}"
end
src_fmt() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 80
def src_fmt
  "-s dir"
end
url() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 58
def url
  optionally('--url', modinfo.project_page)
end
version() click to toggle source
# File lib/puppet_module/pkg/tasks/packager.rb, line 46
def version
  "-v #{modinfo.version}"
end