Skip to content

Instantly share code, notes, and snippets.

@raphink
Created August 27, 2015 09:08
Show Gist options
  • Save raphink/617dd32df7031ff8ca93 to your computer and use it in GitHub Desktop.
Save raphink/617dd32df7031ff8ca93 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'jgrep'
def get_facts(facter_version, filter)
filter_str = filter.map { |f| f.map { |k,v | "#{k}=#{v}" }.join(' and ') }.join(' or ')
jsons = Dir.glob("facts/#{facter_version}/*.facts").map { |f| File.read(f) }
json = "[#{jsons.join(',')}]\n"
JGrep.jgrep(json, filter_str)
end
require 'yaml'
facter_version = '2.4'
filter = [
{
:operatingsystem => 'Debian',
:operatingsystemmajrelease => '8'
},
{
:operatingsystem => 'RedHat',
:operatingsystemmajrelease => '7'
},
{
:operatingsystem => 'Archlinux'
}
]
puts get_facts(facter_version, filter).to_yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment