class Dr::DebPackage

Public Class Methods

new(name, repo) click to toggle source
Calls superclass method
# File lib/dr/debpackage.rb, line 36
def initialize(name, repo)
  super name, repo
end
setup(repo, deb_file, force=false) click to toggle source
# File lib/dr/debpackage.rb, line 8
def self.setup(repo, deb_file, force=false)
  dpkg = ShellCmd.new "dpkg-deb --field #{deb_file} Source", :tag => "dpkg"
  src_name = dpkg.out.chomp
  if src_name == ""
    dpkg = ShellCmd.new "dpkg-deb --field #{deb_file} Package", :tag => "dpkg"
    src_name = dpkg.out.chomp
  end

  deb_file_name = File.basename(deb_file)
  log :info, "Adding the #{deb_file_name.style "subpkg-name"} package"

  dpkg = ShellCmd.new "dpkg-deb --field #{deb_file} Version", :tag => "dpkg"
  version = dpkg.out.chomp

  deb_dir = "#{repo.location}/packages/#{src_name}/builds/#{version}"

  if File.exists?("#{deb_dir}/#{deb_file_name}") && !force
    raise "This deb file is already in the repo"
  end

  log :info, "Adding a build to the #{src_name.style "pkg-name"} source package"
  FileUtils.mkdir_p deb_dir
  FileUtils.cp "#{deb_file}", "#{deb_dir}/"

  log :info, "Signing the deb file"
  repo.sign_deb "#{deb_dir}/#{deb_file_name}"
end

Public Instance Methods

build(branch=nil, force=false) click to toggle source
# File lib/dr/debpackage.rb, line 40
def build(branch=nil, force=false)
  log :warn, "The sources of the #{@name.style "pkg-name"} package are " +
             "not managed by #{"dr".bright}"
  raise UnableToBuild.new "Unable to build the package"
end