facterdb 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTY0YTdiMWI5NDlmMzJjY2YxMjE4YTJkNTk0MmFjZTliMDhlNGMwMA==
4
+ ODY1NjM0YjhhNTVlMDE4OGRhNDQ2NDNmMmM4N2I3ZTAxNmU4YmVmYg==
5
5
  data.tar.gz: !binary |-
6
- ODdjODg1MjRmN2Y1ZjBlNzA4NDM2ZmNhN2I0NDEyZmYyOGJhODFiZQ==
6
+ ODBiNDM0NDU2NjE2N2RkZGFmMzU1YThkMTY1ZGE1ZTM0MGRhYjdiYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MGUwMGFjNmVhYTdiMTI5OGRjZTQ4ODdkMjI4OGI5OTIwZDE5N2ExNmQzZmYy
10
- ODg0ZDljYWRjNDc3MGEwNjZhZDQ0NDcwMDY4YWI2MTkzZGFkYmExMmU1OTAy
11
- N2JlYzNkZTg1M2M2MDE0ZWE1NTY4MTU5ODBiNjJiNjBjM2IwNzU=
9
+ NTI4MWE2MWQ4ZWEyMzMyNzYwNWZjNWMzYjRlNDFiNjgzOTc4YTdjMDk5NGE5
10
+ N2Q0NDcwNGExMjQ3MDBlOGIxY2MxMzYwNjkzOTMxMmYxNjVhNzEwZGVkNGVj
11
+ YzJmNDVkYzgwYjBhZmYxZThkYzQzOGIwNTZjODdkOGU1OGNjYTg=
12
12
  data.tar.gz: !binary |-
13
- NTBlNDQ0MjRhMWVlNjI1YTVlOWE3Y2Y2YjE5MTc5N2YzZTFjZTNjMzY1NjIz
14
- NDA5MDAyZmE2ZWZkYWUwNjQxZTIzZGY5YjgyMTE4YTA4MWNjMDBkNWQ0NDk4
15
- MmNiMDZkMWQ1ZTFlNmYyYzIxYjljYjA3MjlhMmQxNDE3ZjkzZGM=
13
+ M2RhMjdmZjNlMDc5YTYzN2RmZmE1NzYyZTNlNTRhYzk4YjAwNjRmYzFjMzVk
14
+ MmI5ODFkNTY1YzRlYzUwYWIwNzBlMmFkMzRmNzhkYjdlYmE5NTFjMTIyNGUz
15
+ NDBkZmQ0MTg3MDMzODM0YmQ4YTY2M2M2NGEzMjM4MTQwYWUwMGU=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Change Log
2
2
 
3
+ ## [0.2.0](https://rubygems.org/gems/facterdb/versions/0.2.0) (2015-08-31)
4
+ [Full Changelog](https://github.com/camptocamp/facterdb/compare/0.1.0...0.2.0)
5
+
6
+ **Implemented enhancements:**
7
+
8
+ - Add CLI [\#9](https://github.com/camptocamp/facterdb/issues/9)
9
+ - Allow Hash or String for filter [\#8](https://github.com/camptocamp/facterdb/issues/8)
10
+
11
+ **Fixed bugs:**
12
+
13
+ - Fix project homepage [\#10](https://github.com/camptocamp/facterdb/issues/10)
14
+ - Hash keys should be symbolized [\#11](https://github.com/camptocamp/facterdb/pull/11) ([mcanevet](https://github.com/mcanevet))
15
+
3
16
  ## [0.1.0](https://rubygems.org/gems/facterdb/versions/0.1.0) (2015-08-27)
4
17
  [Full Changelog](https://github.com/camptocamp/facterdb/compare/0.0.1...0.1.0)
5
18
 
data/README.md CHANGED
@@ -11,6 +11,16 @@ A Gem that contains a lot of facts for a lot of Operating Systems.
11
11
 
12
12
  # Usage
13
13
 
14
+ ## CLI
15
+
16
+ ```shell
17
+ facterdb 'facterversion=/^2.4\./ and (operatingsystem=Debian and operatingsystemrelease>=7 or operatingsystem=RedHat and operatingsystemrelease=/^7/)'
18
+ ```
19
+
20
+ Will return a JSON containing the facts for Debian 7, Debian 8 and RedHat 7 generated by Facter 2.4.
21
+
22
+ ## Ruby
23
+
14
24
  ```ruby
15
25
  require 'facterdb'
16
26
  FacterDB::get_os_facts()
data/bin/facterdb ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'facterdb/bin'
4
+
5
+ FacterDB::Bin.new(ARGV).run
@@ -0,0 +1,14 @@
1
+ require 'facterdb'
2
+ require 'json'
3
+
4
+ module FacterDB
5
+ class Bin
6
+ def initialize(args)
7
+ @args = args
8
+ end
9
+
10
+ def run
11
+ puts JSON.pretty_generate(FacterDB::get_os_facts('*', @args[0]))
12
+ end
13
+ end
14
+ end
@@ -1,5 +1,5 @@
1
1
  module FacterDB
2
2
  module Version
3
- STRING = '0.1.0'
3
+ STRING = '0.2.0'
4
4
  end
5
5
  end
data/lib/facterdb.rb CHANGED
@@ -4,8 +4,17 @@ require 'jgrep'
4
4
  module FacterDB
5
5
 
6
6
  def self.get_os_facts(facter_version='*', filter=[])
7
+ if filter.is_a?(Array)
8
+ filter_str = filter.map { |f| f.map { |k,v | "#{k}=#{v}" }.join(' and ') }.join(' or ')
9
+ elsif filter.is_a?(Hash)
10
+ filter_str = filter.map { |k,v | "#{k}=#{v}" }.join(' and ')
11
+ elsif filter.is_a?(String)
12
+ filter_str = filter
13
+ else
14
+ raise 'filter must be either an Array a Hash or a String'
15
+ end
16
+
7
17
  facts_dir = File.expand_path(File.join(File.dirname(__FILE__), '../facts'))
8
- filter_str = filter.map { |f| f.map { |k,v | "#{k}=#{v}" }.join(' and ') }.join(' or ')
9
18
 
10
19
  jsons = Dir.glob("#{facts_dir}/#{facter_version}/*.facts").map { |f| File.read(f) }
11
20
  json = "[#{jsons.join(',')}]\n"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facterdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mickaël Canévet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-27 00:00:00.000000000 Z
11
+ date: 2015-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls
@@ -111,7 +111,8 @@ dependencies:
111
111
  description: Contains facts from many Facter version on many Operating Systems
112
112
  email:
113
113
  - mickael.canevet@camptocamp.com
114
- executables: []
114
+ executables:
115
+ - facterdb
115
116
  extensions: []
116
117
  extra_rdoc_files: []
117
118
  files:
@@ -122,6 +123,7 @@ files:
122
123
  - LICENSE
123
124
  - README.md
124
125
  - Rakefile
126
+ - bin/facterdb
125
127
  - facterdb.gemspec
126
128
  - facts/1.6/archlinux-i386.facts
127
129
  - facts/1.6/archlinux-x86_64.facts
@@ -557,6 +559,7 @@ files:
557
559
  - facts/Vagrantfile
558
560
  - facts/get_facts.sh
559
561
  - lib/facterdb.rb
562
+ - lib/facterdb/bin.rb
560
563
  - lib/facterdb/version.rb
561
564
  - spec/facterdb_spec.rb
562
565
  - spec/spec_helper.rb