Sha256: 6391f4a516a0c76bdca7d23dfd3cc837a6a689e0428ef2bef942d49be8dacd21
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true module Facter module Resolvers module Macosx class Processors < BaseResolver @log = Facter::Log.new(self) @semaphore = Mutex.new @fact_list = {} ITEMS = { logical_count: 'hw.logicalcpu_max', physical_count: 'hw.physicalcpu_max', brand: 'machdep.cpu.brand_string', speed: 'hw.cpufrequency_max' }.freeze class << self # :logicalcount # :models # :physicalcount # :speed private def post_resolve(fact_name) @fact_list.fetch(fact_name) { read_processor_data(fact_name) } end def read_processor_data(fact_name) output, _status = Open3.capture2("sysctl #{ITEMS.values.join(' ')}") build_fact_list(output.split("\n")) @fact_list[fact_name] end def build_fact_list(processors_data) build_logical_count(processors_data[0]) build_physical_count(processors_data[1]) build_models(processors_data[2]) build_speed(processors_data[3]) end def build_logical_count(count) @fact_list[:logicalcount] = count.split(': ')[1].to_i end def build_physical_count(count) @fact_list[:physicalcount] = count.split(': ')[1].to_i end def build_models(model) brand = model.split(': ').fetch(1) @fact_list[:models] = Array.new(@fact_list[:logicalcount].to_i, brand) end def build_speed(value) @fact_list[:speed] = value.split(': ')[1].to_i end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
facter-4.0.20 | lib/resolvers/macosx/processor_resolver.rb |
facter-4.0.19 | lib/resolvers/macosx/processor_resolver.rb |