module Mac::Pkg

Public Instance Methods

check_for_package(name) click to toggle source
# File lib/beaker/host/mac/pkg.rb, line 4
def check_for_package(name)
  raise "Package #{name} cannot be queried on #{self}"
end
determine_if_x86_64() click to toggle source

Examine the host system to determine the architecture @return [Boolean] true if x86_64, false otherwise

# File lib/beaker/host/mac/pkg.rb, line 46
def determine_if_x86_64
  result = exec(Beaker::Command.new("uname -a | grep x86_64"), :expect_all_exit_codes => true)
  result.exit_code == 0
end
generic_install_dmg(dmg_file, pkg_base, pkg_name) click to toggle source

Install a package from a specified dmg

@param [String] dmg_file The dmg file, including path if not

relative. Can be a URL.

@param [String] pkg_base The base name of the directory that the dmg

attaches to under `/Volumes`

@param [String] pkg_name The name of the package file that should be

used by the installer

@example: Install vagrant from URL

mymachost.generic_install_dmg('https://releases.hashicorp.com/vagrant/1.8.4/vagrant_1.8.4.dmg', 'Vagrant', 'Vagrant.pkg')
# File lib/beaker/host/mac/pkg.rb, line 22
def generic_install_dmg(dmg_file, pkg_base, pkg_name)
  execute("test -f #{dmg_file}", :accept_all_exit_codes => true) do |result|
    execute("curl -O #{dmg_file}") unless result.exit_code == 0
  end
  dmg_name = File.basename(dmg_file, '.dmg')
  execute("hdiutil attach #{dmg_name}.dmg")
  execute("installer -pkg /Volumes/#{pkg_base}/#{pkg_name} -target /")
end
install_package(name, _cmdline_args = '', _version = nil) click to toggle source
# File lib/beaker/host/mac/pkg.rb, line 8
def install_package(name, _cmdline_args = '', _version = nil)
  generic_install_dmg("#{name}.dmg", name, "#{name}.pkg")
end
uninstall_package(name, _cmdline_args = '') click to toggle source
# File lib/beaker/host/mac/pkg.rb, line 31
def uninstall_package(name, _cmdline_args = '')
  raise "Package #{name} cannot be uninstalled on #{self}"
end
upgrade_package(name, _cmdline_args = '') click to toggle source

Upgrade an installed package to the latest available version

@param [String] name The name of the package to update @param [String] cmdline_args Additional command line arguments for

the package manager
# File lib/beaker/host/mac/pkg.rb, line 40
def upgrade_package(name, _cmdline_args = '')
  raise "Package #{name} cannot be upgraded on #{self}"
end