class Facter::Resolvers::ReleaseFromFirstLine

Private Class Methods

post_resolve(fact_name, options) click to toggle source
# File lib/facter/resolvers/release_from_first_line.rb, line 13
def post_resolve(fact_name, options)
  @fact_list.fetch(fact_name) { read_release_file(fact_name, options) }
end
read_release_file(fact_name, options) click to toggle source
# File lib/facter/resolvers/release_from_first_line.rb, line 17
def read_release_file(fact_name, options)
  release_file = options[:release_file]
  return unless release_file

  output = Facter::Util::FileHelper.safe_read(release_file, nil)
  return @fact_list[fact_name] = nil if output.nil?

  @fact_list[:release] = retrieve_version(output)

  @fact_list[fact_name]
end
retrieve_version(output) click to toggle source
# File lib/facter/resolvers/release_from_first_line.rb, line 29
def retrieve_version(output)
  if output[/(Rawhide)$/]
    'Rawhide'
  elsif output['release']
    output.strip =~ /release (\d[\d.]*)/ ? Regexp.last_match(1) : nil
  else
    output.strip =~ /Amazon Linux (\d+)/ ? Regexp.last_match(1) : nil
  end
end