From 9ce3f14ce82677602f0c63c5c965c1cb905f18a5 Mon Sep 17 00:00:00 2001 From: Tim Meusel Date: Fri, 22 Apr 2022 16:07:50 +0200 Subject: [PATCH] (FACT-3114) Arch Linux: Implement os version facts --- lib/facter/facts/archinux/os/release.rb | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/facter/facts/archinux/os/release.rb diff --git a/lib/facter/facts/archinux/os/release.rb b/lib/facter/facts/archinux/os/release.rb new file mode 100644 index 0000000000..0df861a55e --- /dev/null +++ b/lib/facter/facts/archinux/os/release.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Facts + module Archlinux + module Os + class Release + FACT_NAME = 'os.release' + ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze + + def call_the_resolver + version = determine_release_version + + return Facter::ResolvedFact.new(FACT_NAME, nil) unless version + + [Facter::ResolvedFact.new(FACT_NAME, version), + Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy), + Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)] + end + + def determine_release_version + version = Facter::Resolvers::Uname.resolve(:kernelrelease) + + Facter::Util::Facts.release_hash_from_string(version) + end + end + end + end +end