Current File : //opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/release_from_first_line.rb |
# frozen_string_literal: true
module Facter
module Resolvers
class ReleaseFromFirstLine < BaseResolver
# :release
init_resolver
class << self
private
def post_resolve(fact_name, options)
@fact_list.fetch(fact_name) { read_release_file(fact_name, options) }
end
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
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
end
end
end
end