Sha256: cdde86948f69ef9295e981fdbdfea9f9b837361521a40ba7b43c0b7c92ca15d8

Contents?: true

Size: 1.73 KB

Versions: 36

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

module Facter
  module Resolvers
    module Macosx
      class SystemProfiler < BaseResolver
        SP_HARDWARE_DATA_TYPE = %i[model_name model_identifier processor_speed number_of_processors processor_name
                                   total_number_of_cores l2_cache_per_core l3_cache memory boot_rom_version
                                   smc_version_system serial_number_system hardware_uuid hyper-threading_technology
                                   activation_lock_status].freeze

        SP_SOFTWARE_DATA_TYPE = %i[system_version kernel_version boot_volume boot_mode computer_name
                                   user_name secure_virtual_memory system_integrity_protection time_since_boot].freeze

        SP_ETHERNET_DATA_TYPE = %i[type bus vendor_id device_id subsystem_vendor_id
                                   subsystem_id revision_id bsd_name kext_name location version].freeze

        init_resolver

        class << self
          private

          def post_resolve(fact_name, _options)
            @fact_list.fetch(fact_name) { retrieve_system_profiler(fact_name) }
          end

          def retrieve_system_profiler(fact_name)
            case fact_name
            when *SP_HARDWARE_DATA_TYPE
              @fact_list.merge!(Facter::Util::Macosx::SystemProfileExecutor.execute('SPHardwareDataType'))
            when *SP_SOFTWARE_DATA_TYPE
              @fact_list.merge!(Facter::Util::Macosx::SystemProfileExecutor.execute('SPSoftwareDataType'))
            when *SP_ETHERNET_DATA_TYPE
              @fact_list.merge!(Facter::Util::Macosx::SystemProfileExecutor.execute('SPEthernetDataType'))
            end

            @fact_list[fact_name]
          end
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
facter-4.10.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.9.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.8.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.7.1 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.7.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.6.1 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.6.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.5.2 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.5.1 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.5.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.4.3 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.4.2 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.4.1 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.4.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.3.1 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.3.0 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.2.14 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.2.13 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.2.12 lib/facter/resolvers/macosx/system_profiler.rb
facter-4.2.11 lib/facter/resolvers/macosx/system_profiler.rb