Skip to content
This repository has been archived by the owner on Jun 19, 2020. It is now read-only.

Commit

Permalink
(maint) Add *BSD kernelversion and kernelmajversion facts (#462)
Browse files Browse the repository at this point in the history
  • Loading branch information
smortex authored Apr 29, 2020
1 parent ecba976 commit 60117e2
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 0 deletions.
16 changes: 16 additions & 0 deletions lib/facts/bsd/kernelmajversion.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# frozen_string_literal: true

module Facts
module Bsd
class Kernelmajversion
FACT_NAME = 'kernelmajversion'

def call_the_resolver
full_version = Facter::Resolvers::Uname.resolve(:kernelrelease)
versions_split = full_version.split('.')
major_version = versions_split[0]
Facter::ResolvedFact.new(FACT_NAME, major_version)
end
end
end
end
14 changes: 14 additions & 0 deletions lib/facts/bsd/kernelversion.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

module Facts
module Bsd
class Kernelversion
FACT_NAME = 'kernelversion'

def call_the_resolver
fact_value = Facter::Resolvers::Uname.resolve(:kernelrelease).sub(/\A(\d+(\.\d+)*).*/, '\1')
Facter::ResolvedFact.new(FACT_NAME, fact_value)
end
end
end
end
24 changes: 24 additions & 0 deletions spec/facter/facts/bsd/kernelmajversion_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# frozen_string_literal: true

describe Facts::Bsd::Kernelmajversion do
describe '#call_the_resolver' do
subject(:fact) { Facts::Bsd::Kernelmajversion.new }

let(:fact_value) { '12' }
let(:resolver_value) { '12.1-RELEASE-p3' }

before do
allow(Facter::Resolvers::Uname).to receive(:resolve).with(:kernelrelease).and_return(resolver_value)
end

it 'calls Facter::Resolvers::OsLevel' do
fact.call_the_resolver
expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:kernelrelease)
end

it 'returns kernelmajversion fact' do
expect(fact.call_the_resolver).to be_an_instance_of(Facter::ResolvedFact).and \
have_attributes(name: 'kernelmajversion', value: fact_value)
end
end
end
24 changes: 24 additions & 0 deletions spec/facter/facts/bsd/kernelversion_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# frozen_string_literal: true

describe Facts::Bsd::Kernelversion do
describe '#call_the_resolver' do
subject(:fact) { Facts::Bsd::Kernelversion.new }

let(:resolver_value) { '12.1-RELEASE-p3' }
let(:fact_value) { '12.1' }

before do
allow(Facter::Resolvers::Uname).to receive(:resolve).with(:kernelrelease).and_return(resolver_value)
end

it 'calls Facter::Resolvers::OsLevel' do
fact.call_the_resolver
expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:kernelrelease)
end

it 'returns kernelversion fact' do
expect(fact.call_the_resolver).to be_an_instance_of(Facter::ResolvedFact).and \
have_attributes(name: 'kernelversion', value: fact_value)
end
end
end

0 comments on commit 60117e2

Please sign in to comment.