Skip to content

Commit 7a522df

Browse files
committed
Make puppet version dependencies a config file setup
1 parent 40d75b8 commit 7a522df

File tree

2 files changed

+39
-12
lines changed

2 files changed

+39
-12
lines changed

config/puppet-versions.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[
2+
{
3+
"minimum_version": "3.0.0",
4+
"maximum_version": "3.99.99",
5+
"additional_gems": [
6+
{ "name": "safe_yaml", "version": "~> 1.0.4" },
7+
{ "name": "puppetdb-terminus", "version": "3.2.4" }
8+
]
9+
},
10+
{
11+
"minimum_version": "4.0.0",
12+
"maximum_version": "4.99.99",
13+
"additional_gems": [
14+
{ "name": "puppetdb-terminus", "version": "3.2.4" }
15+
]
16+
},
17+
{
18+
"minimum_version": "5.0.0",
19+
"maximum_version": "5.99.99",
20+
"additional_gems": [
21+
]
22+
}
23+
]

octocatalog-diff.gemspec

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require_relative 'lib/octocatalog-diff/version'
2+
require 'json'
23

34
DEFAULT_PUPPET_VERSION = '4.10.0'.freeze
45

@@ -10,9 +11,10 @@ Gem::Specification.new do |s|
1011
s.license = 'MIT'
1112
s.authors = ['GitHub, Inc.', 'Kevin Paulisse']
1213
s.email = '[email protected]'
13-
# rubocop:disable LineLength
14-
s.files = Dir.glob('doc/**/*.md') + Dir.glob('lib/**/*') + Dir.glob('scripts/**/*') + %w(LICENSE README.md .version bin/octocatalog-diff)
15-
# rubocop:enable LineLength
14+
s.files = Dir.glob('doc/**/*.md') \
15+
+ Dir.glob('lib/**/*') \
16+
+ Dir.glob('scripts/**/*') \
17+
+ %w(LICENSE README.md .version bin/octocatalog-diff)
1618
s.executables = 'octocatalog-diff'
1719
s.homepage = 'https://github.com/github/octocatalog-diff'
1820
s.summary = 'Compile Puppet catalogs from 2 branches, versions, etc., and compare them.'
@@ -35,17 +37,19 @@ EOF
3537

3638
s.add_development_dependency 'rubocop', '= 0.48.1'
3739

38-
s.add_development_dependency 'puppetdb-terminus', '3.2.4'
39-
40-
s.add_development_dependency 'simplecov', '>= 0.14.1'
40+
s.add_development_dependency 'simplecov', '~> 0.14.1'
4141
s.add_development_dependency 'simplecov-json'
4242

43-
if ENV['PUPPET_VERSION']
44-
s.add_development_dependency 'puppet', "~> #{ENV['PUPPET_VERSION']}"
45-
if ENV['PUPPET_VERSION'] =~ /^3/
46-
s.add_development_dependency 'safe_yaml', '~> 1.0.4'
43+
puppet_version = ENV['PUPPET_VERSION'] || DEFAULT_PUPPET_VERSION
44+
s.add_development_dependency 'puppet', "~> #{puppet_version}"
45+
46+
puppet_v = Gem::Version.new(puppet_version)
47+
version_config = JSON.parse(File.read(File.join(File.dirname(__FILE__), 'config', 'puppet-versions.json')))
48+
version_config.each do |data|
49+
next unless puppet_v >= Gem::Version.new(data['minimum_version'])
50+
next unless puppet_v <= Gem::Version.new(data['maximum_version'])
51+
data['additional_gems'].each do |additional_gem|
52+
s.add_development_dependency additional_gem["name"], additional_gem["version"]
4753
end
48-
else
49-
s.add_development_dependency 'puppet', "~> #{DEFAULT_PUPPET_VERSION}"
5054
end
5155
end

0 commit comments

Comments
 (0)