class Facter::Resolvers::Solaris::OsRelease

Constants

OS_VERSION_REGEX_PATTERNS

Private Class Methods

build_release_facts(fact_name) click to toggle source
# File lib/facter/resolvers/solaris/os_release.rb, line 19
def build_release_facts(fact_name)
  result = Facter::Util::FileHelper.safe_read('/etc/release', nil)
  return @fact_list[fact_name] = nil if result.nil?

  OS_VERSION_REGEX_PATTERNS.each do |os_version_regex|
    major, minor = search_for_os_version(/#{os_version_regex}/, result)
    next unless major || minor

    @fact_list[:major] = major
    @fact_list[:minor] = minor
    @fact_list[:full] = major == '10' ? major + '_u' + minor : major + '.' + minor
    break
  end
  @fact_list[fact_name]
end
post_resolve(fact_name, _options) click to toggle source
# File lib/facter/resolvers/solaris/os_release.rb, line 15
def post_resolve(fact_name, _options)
  @fact_list.fetch(fact_name) { build_release_facts(fact_name) }
end
search_for_os_version(regex_pattern, text) click to toggle source
# File lib/facter/resolvers/solaris/os_release.rb, line 35
def search_for_os_version(regex_pattern, text)
  result = text.match(regex_pattern)
  major, minor = result.captures if result
  minor = regex_pattern == /Solaris (\d+)/ ? '0' : minor
  return [major, minor] if major && minor
end