class Chef::Provider::Package::Freebsd::Pkg
Public Instance Methods
candidate_version()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 79 def candidate_version case new_resource.source when /^http/, /^ftp/ repo_candidate_version when /^\// file_candidate_version else ports_candidate_version end end
current_installed_version()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 74 def current_installed_version pkg_info = shell_out_compact_timeout!("pkg_info", "-E", "#{package_name}*", env: nil, returns: [0, 1]) pkg_info.stdout[/^#{Regexp.escape(package_name)}-(.+)/, 1] end
file_candidate_version()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 94 def file_candidate_version file_candidate_version_path.split(/-/).last.split(/.tbz/).first end
file_candidate_version_path()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 90 def file_candidate_version_path Dir[Chef::Util::PathHelper.escape_glob_dir("#{new_resource.source}/#{current_resource.package_name}") + "*"][-1].to_s end
install_package(name, version)
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 32 def install_package(name, version) unless current_resource.version case new_resource.source when /^http/, /^ftp/ if new_resource.source =~ /\/$/ shell_out_compact_timeout!("pkg_add", "-r", package_name, env: { "PACKAGESITE" => new_resource.source, "LC_ALL" => nil }).status else shell_out_compact_timeout!("pkg_add", "-r", package_name, env: { "PACKAGEROOT" => new_resource.source, "LC_ALL" => nil }).status end logger.trace("#{new_resource} installed from: #{new_resource.source}") when /^\// shell_out_compact_timeout!("pkg_add", file_candidate_version_path, env: { "PKG_PATH" => new_resource.source, "LC_ALL" => nil }).status logger.trace("#{new_resource} installed from: #{new_resource.source}") else shell_out_compact_timeout!("pkg_add", "-r", latest_link_name, env: nil).status end end end
latest_link_name()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 70 def latest_link_name makefile_variable_value("LATEST_LINK", port_path) end
package_name()
click to toggle source
The name of the package (without the version number) as understood by pkg_add and pkg_info.
# File lib/chef/provider/package/freebsd/pkg.rb, line 58 def package_name if supports_ports? if makefile_variable_value("PKGNAME", port_path) =~ /^(.+)-[^-]+$/ $1 else raise Chef::Exceptions::Package, "Unexpected form for PKGNAME variable in #{port_path}/Makefile" end else new_resource.package_name end end
port_path()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 106 def port_path port_dir new_resource.package_name end
ports_candidate_version()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 102 def ports_candidate_version makefile_variable_value("PORTVERSION", port_path) end
remove_package(name, version)
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 53 def remove_package(name, version) shell_out_compact_timeout!("pkg_delete", "#{package_name}-#{version || current_resource.version}", env: nil).status end
repo_candidate_version()
click to toggle source
# File lib/chef/provider/package/freebsd/pkg.rb, line 98 def repo_candidate_version "0.0.0" end