Class: Niman::Installer

Inherits:
Object
  • Object
show all
Defined in:
lib/niman/installer.rb

Instance Method Summary collapse

Instance Method Details

#install(packages) ⇒ Object



12
13
14
15
16
# File 'lib/niman/installer.rb', line 12

def install(packages)
  Array(packages).each do |package|
    self.install_package(package)
  end
end

#install_package(package) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# 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