class Niman::Installer

Public Instance Methods

install(packages) click to toggle source
# File lib/niman/installer.rb, line 12
def install(packages)
  Array(packages).each do |package|
    self.install_package(package)
  end
end
install_package(package) click to toggle source
# File lib/niman/installer.rb, line 18
def install_package(package)
  package_manager = managers.fetch(shell.os.to_sym) { raise Niman::InstallError, shell.os }
  return unless package.installable?
  if package.respond_to?(:package_names)
    package_name = package.package_names.fetch(shell.os.to_sym) { raise Niman::InstallError, "Package has no support for #{shell.os}" }
    shell.exec("#{package_manager} install #{package_name}", true)
  elsif package.respond_to?(:name)
    shell.exec("#{package_manager} install #{package.name}", true)
  end
end