Class: AptControl::AptSite

Inherits:
Object
  • Object
show all
Includes:
AptControl::Actors::Proxied, Exec::Helpers
Defined in:
lib/apt_control/apt_site.rb

Overview

represents the reprepro apt site that we query and include packages in to

Instance Method Summary collapse

Methods included from AptControl::Actors::Proxied

#actor, included

Methods included from Exec::Helpers

#exec

Constructor Details

#initialize(apt_site_dir, logger) ⇒ AptSite

Returns a new instance of AptSite.



9
10
11
12
# File 'lib/apt_control/apt_site.rb', line 9

def initialize(apt_site_dir, logger)
  @apt_site_dir = apt_site_dir
  @logger = logger
end

Instance Method Details

#include!(distribution_name, changes_fname) ⇒ Object

include a particular version in to a distribution. Will likely fail for a myriad number of reasons, so spits out error messages to sdterr



29
30
31
32
# File 'lib/apt_control/apt_site.rb', line 29

def include!(distribution_name, changes_fname)
  command = "#{reprepro_cmd} --ignore=wrongdistribution include #{distribution_name} #{changes_fname}"
  exec(command, :name => 'reprepro')
end

#included_version(distribution_name, package_name) ⇒ Object

query the apt site for which version of a package is installed for a particular distribution



20
21
22
23
24
25
# File 'lib/apt_control/apt_site.rb', line 20

def included_version(distribution_name, package_name)
  command = "#{reprepro_cmd} -Tdsc list #{distribution_name} #{package_name}"
  output = exec(command, :name => 'reprepro')
  version_string = output.split(' ').last
  version_string && Version.parse(version_string)
end

#reprepro_cmdObject



14
15
16
# File 'lib/apt_control/apt_site.rb', line 14

def reprepro_cmd
  "reprepro -b #{@apt_site_dir}"
end