class Autoproj::OSRepositoryInstaller

Constants

OS_REPOSITORY_MANAGERS

Attributes

repository_managers[R]

Returns the set of repository managers

ws[R]

The workspace object

Public Class Methods

new(ws) click to toggle source
# File lib/autoproj/os_repository_installer.rb, line 17
def initialize(ws)
    @ws = ws
    @repository_managers = {}
    OS_REPOSITORY_MANAGERS.each do |name, klass|
        @repository_managers[name] = klass.new(ws)
    end
end

Public Instance Methods

each_manager(&block) click to toggle source
# File lib/autoproj/os_repository_installer.rb, line 41
def each_manager(&block)
    repository_managers.each_value(&block)
end
install_os_repositories() click to toggle source
# File lib/autoproj/os_repository_installer.rb, line 45
def install_os_repositories
    return if os_repository_resolver.resolved_entries.empty?

    deps = os_repository_manager.os_dependencies
    ws.install_os_packages(deps, all: nil) unless deps.empty?
    os_repository_manager.install(os_repository_resolver.resolved_entries)
end
os_repository_manager() click to toggle source

Returns the repository manager object for the current OS

# File lib/autoproj/os_repository_installer.rb, line 30
def os_repository_manager
    return @os_repository_manager if @os_repository_manager

    os_names, = os_repository_resolver.operating_system
    os_name = os_names.find { |name| OS_REPOSITORY_MANAGERS[name] }

    @os_repository_manager =
        repository_managers[os_name] ||
        RepositoryManagers::UnknownOSManager.new(ws)
end
os_repository_resolver() click to toggle source
# File lib/autoproj/os_repository_installer.rb, line 25
def os_repository_resolver
    ws.os_repository_resolver
end