Sha256: ef62cb0462ba74d6f5bfd6a48d2c594c276a4d57138a354b0a653a9fea802c78

Contents?: true

Size: 786 Bytes

Versions: 8

Compression:

Stored size: 786 Bytes

Contents

# frozen_string_literal: true

desc 'Create a fact list for the specified os'
task :fact_list_generator, [:os_name] do |_, args|
  ROOT_DIR = Pathname.new(File.expand_path('..', __dir__)) unless defined?(ROOT_DIR)

  require "#{ROOT_DIR}/lib/framework/core/file_loader"
  load_lib_dirs('facts', '**')

  os_hierarchy = Facter::OsHierarchy.new
  hierarchy = os_hierarchy.construct_hierarchy(args[:os_name])

  internal_fact_loader = Facter::InternalFactLoader.new(hierarchy)
  facts = internal_fact_loader.facts

  fact_mapping = []
  facts.each do |loaded_fact|
    fact_hash = {}
    fact_hash[:name] = loaded_fact.name
    fact_hash[:klass] = loaded_fact.klass
    fact_hash[:type] = loaded_fact.type
    fact_mapping << fact_hash
  end

  puts JSON.pretty_generate(fact_mapping)
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
facter-4.0.29 tasks/fact_list_generator.rake
facter-4.0.28 tasks/fact_list_generator.rake
facter-4.0.26 tasks/fact_list_generator.rake
facter-4.0.25 tasks/fact_list_generator.rake
facter-4.0.24 tasks/fact_list_generator.rake
facter-4.0.23 tasks/fact_list_generator.rake
facter-4.0.22 tasks/fact_list_generator.rake
facter-4.0.21 tasks/fact_list_generator.rake