class Chef::Provider::Package::Freebsd::Port

Public Instance Methods

candidate_version() click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 45
def candidate_version
  if supports_ports?
    makefile_variable_value("PORTVERSION", port_dir)
  else
    raise Chef::Exceptions::Package, "Ports collection could not be found"
  end
end
current_installed_version() click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 36
def current_installed_version
  pkg_info = if supports_pkgng?
               shell_out!("pkg info \"#{@new_resource.package_name}\"", :env => nil, :returns => [0,70])
             else
               shell_out!("pkg_info -E \"#{@new_resource.package_name}*\"", :env => nil, :returns => [0,1])
             end
  pkg_info.stdout[/^#{Regexp.escape(@new_resource.package_name)}-(.+)/, 1]
end
install_package(name, version) click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 28
def install_package(name, version)
  shell_out!("make -DBATCH install clean", :timeout => 1800, :env => nil, :cwd => port_dir).status
end
port_dir() click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 53
def port_dir
  super(@new_resource.package_name)
end
remove_package(name, version) click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 32
def remove_package(name, version)
  shell_out!("make deinstall", :timeout => 300, :env => nil, :cwd => port_dir).status
end

Private Instance Methods

supports_pkgng?() click to toggle source
# File lib/chef/provider/package/freebsd/port.rb, line 61
def supports_pkgng?
  with_pkgng = makefile_variable_value('WITH_PKGNG')
  with_pkgng && with_pkgng =~ /yes/i
end