Skip to content

Commit 64e0115

Browse files
authored
Merge pull request #203 from ekohl/smaller-puppet-facter-map
Only store facter versions in JSON
2 parents ffcfe78 + de06dcb commit 64e0115

File tree

6 files changed

+150
-6668
lines changed

6 files changed

+150
-6668
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ When no facts are available for the specific facter/operating system combination
572572
## Maintenance
573573

574574
This gem uses information about puppet AIO component versions to build/test.
575-
They are vendored at `ext/puppet_agent_components.json`. If they are outdated,
575+
They are stored at `ext/puppet_agent_facter_versions.json`. If they are outdated,
576576
the `puppet_versions:test` rake task will fail and they need to be updated.
577577
This is as easy as running: `bundle exec rake puppet_versions:update`
578578

Rakefile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PUPPET_VERSIONS_PATH = File.join(__dir__, 'ext', 'puppet_agent_components.json')
1+
PUPPET_VERSIONS_PATH = File.join(__dir__, 'ext', 'puppet_agent_facter_versions.json')
22

33
begin
44
require 'rspec/core/rake_task'
@@ -31,9 +31,14 @@ namespace :puppet_versions do
3131
response = http.request(request)
3232
raise unless response.is_a?(Net::HTTPSuccess)
3333

34-
File.open(PUPPET_VERSIONS_PATH, 'wb:UTF-8') do |fd|
35-
fd.write(JSON.pretty_generate(JSON.parse(response.body)))
34+
data = JSON.parse(response.body).filter_map do |_, versions|
35+
if !versions['puppet'].nil? && !versions['facter'].nil?
36+
[versions['puppet'], versions['facter']]
37+
end
3638
end
39+
data.sort_by! { |puppet, _facter| Gem::Version.new(puppet) }.reverse!
40+
41+
File.write(PUPPET_VERSIONS_PATH, "#{JSON.pretty_generate(data.to_h)}\n")
3742
end
3843

3944
task :test do

0 commit comments

Comments
 (0)