module Chef::Provider::Package::Freebsd::PortsHelper
Public Instance Methods
makefile_variable_value(variable, dir = nil)
click to toggle source
# File lib/chef/provider/package/freebsd/base.rb, line 58 def makefile_variable_value(variable, dir = nil) options = dir ? { cwd: dir } : {} make_v = shell_out!("make", "-V", variable, options.merge!(env: nil, returns: [0, 1])) make_v.exitstatus == 0 ? make_v.stdout.strip.split($OUTPUT_RECORD_SEPARATOR).first : nil # $\ is the line separator, i.e. newline. end
port_dir(port)
click to toggle source
# File lib/chef/provider/package/freebsd/base.rb, line 36 def port_dir(port) case port # When the package name starts with a '/' treat it as the full path to the ports directory. when /^\// port # Otherwise if the package name contains a '/' not at the start (like 'www/wordpress') treat # as a relative path from /usr/ports. when /\// "/usr/ports/#{port}" # Otherwise look up the path to the ports directory using 'whereis' else whereis = shell_out!("whereis", "-s", port, env: nil) unless path = whereis.stdout[/^#{Regexp.escape(port)}:\s+(.+)$/, 1] raise Chef::Exceptions::Package, "Could not find port with the name #{port}" end path end end
supports_ports?()
click to toggle source
# File lib/chef/provider/package/freebsd/base.rb, line 32 def supports_ports? ::File.exist?("/usr/ports/Makefile") end