class Facter::Resolvers::RedHatRelease

Private Class Methods

build_fact_list(output) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 30
def build_fact_list(output)
  @fact_list[:description] = output.strip
  output_strings = output.split('release')
  output_strings.map!(&:strip)

  @fact_list[:codename] = codename(output_strings)
  @fact_list[:distributor_id] = distributor_id(output_strings[0])
  @fact_list[:name] = release_name(output_strings[0])
  @fact_list[:version] = version(output_strings)
  @fact_list[:id] = id(@fact_list[:name])
end
codename(value) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 62
def codename(value)
  matched_data = value[1].match(/.*\((.*)\).*/)
  return if matched_data.nil?
  codename = matched_data[1] if value[0].match?(/Red Hat Enterprise Linux/i)
  codename = value[1].split.first if value[0].match?(/RED OS/i)

  codename
end
distributor_id(value) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 71
def distributor_id(value)
  value.split.reject { |el| el.casecmp('linux').zero? }.join
end
id(value) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 46
def id(value)
  id = value.downcase
  id = 'rhel' if @fact_list[:name].casecmp('Red Hat Enterprise Linux')

  id
end
post_resolve(fact_name, _options) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 17
def post_resolve(fact_name, _options)
  @fact_list.fetch(fact_name) { read_redhat_release(fact_name) }
end
read_redhat_release(fact_name) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 21
def read_redhat_release(fact_name)
  output = Facter::Util::FileHelper.safe_read('/etc/redhat-release', nil)
  return @fact_list[fact_name] = nil if output.nil?

  build_fact_list(output)

  @fact_list[fact_name]
end
release_name(value) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 42
def release_name(value)
  value.split.reject { |el| el.casecmp('linux').zero? }[0..1].join
end
version(value) click to toggle source
# File lib/facter/resolvers/redhat_release.rb, line 53
def version(value)
  matched_data = value[1].match(/.*\((.*)\).*/)
  return if matched_data.nil?
  version = value[1].split.first if value[0].match?(/Red Hat Enterprise Linux/i)
  version = matched_data[1] if value[0].match?(/RED OS/i)
  
  version 
end