ra10ke 0.1.1 → 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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +11 -0
- data/README.md +13 -2
- data/lib/ra10ke/version.rb +1 -1
- data/lib/ra10ke.rb +44 -2
- data/ra10ke.gemspec +2 -1
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22fd36a3a88f9a05d15fb0b4e964e3151e0eff8f
|
4
|
+
data.tar.gz: f9234354db77a8bf07d29e826c7570ffc6bc29d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bba17ade9b5e494e75f604e8ec734c1c5489a127adc366554c2b35c69cade5a3e49d50b725fb036ac03e92e98db0651f18856e6eb2f4d0e1db797f1027636c4
|
7
|
+
data.tar.gz: 3f59f147b0d1709ae9e3c4aa5cfbd2a2e1770b2d789661b9f501a003b99e4ad7e778b667aeba4166b836ffbfe20547d98838519f2f51433426a4221d5b23c451
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Gemfile.lock
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
=========
|
3
3
|
|
4
|
+
0.2.0
|
5
|
+
-----
|
6
|
+
|
7
|
+
2017-01-03
|
8
|
+
|
9
|
+
* Moved to [Vox Pupuli](https://voxpupuli.org/)
|
10
|
+
* [#3](https://github.com/voxpupuli/ra10ke/pull/3) Update ra10ke with r10k 2.4.0 support
|
11
|
+
* [#4](https://github.com/voxpupuli/ra10ke/pull/4) Added git support
|
12
|
+
|
13
|
+
Many thanks to [Alexander "Ace" Olofsson](https://github.com/ace13) and [James Powis](https://github.com/james-powis) for their contributions!
|
14
|
+
|
4
15
|
0.1.1
|
5
16
|
-----
|
6
17
|
|
data/README.md
CHANGED
@@ -31,9 +31,20 @@ command.
|
|
31
31
|
This rake task goes through the modules that are declared in the Puppetfile,
|
32
32
|
and prints outdated modules.
|
33
33
|
|
34
|
+
Supports:
|
35
|
+
- Puppet Forge
|
36
|
+
- Git (SHA-ref and Tagging)
|
37
|
+
|
38
|
+
Ignoring specific modules:
|
39
|
+
|
40
|
+
Under specific conditions you may not wish to report on specific modules being out of date,
|
41
|
+
to ignore a module create `.r10kignore` file in the same directory as your Puppetfile.
|
42
|
+
|
34
43
|
#### Limitations
|
35
44
|
|
36
|
-
* It works only with modules from the [Forge](https://forge.puppetlabs.com).
|
37
|
-
|
45
|
+
* It works only with modules from the [Forge](https://forge.puppetlabs.com), and Git.
|
46
|
+
SVN modules will be ignored.
|
47
|
+
* Git support is explicitly SHA Ref and Tag supported. If tag is used it must follow
|
48
|
+
`v0.0.0` convention, other wise it will be ignored.
|
38
49
|
* The version has to be specified explicitly. If it is omitted, or it is
|
39
50
|
`:latest`, the module will be ignored.
|
data/lib/ra10ke/version.rb
CHANGED
data/lib/ra10ke.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/tasklib'
|
3
3
|
require 'ra10ke/version'
|
4
|
+
require 'git'
|
4
5
|
|
5
6
|
module Ra10ke
|
6
7
|
class RakeTask < ::Rake::TaskLib
|
@@ -12,9 +13,17 @@ module Ra10ke
|
|
12
13
|
require 'puppet_forge'
|
13
14
|
|
14
15
|
PuppetForge.user_agent = "ra10ke/#{Ra10ke::VERSION}"
|
15
|
-
puppetfile = R10K::Puppetfile.new('.')
|
16
|
+
puppetfile = R10K::Puppetfile.new('.')
|
17
|
+
puppetfile.load!
|
16
18
|
|
17
|
-
|
19
|
+
# ignore file allows for "don't tell me about this"
|
20
|
+
ignore_modules = []
|
21
|
+
if File.exist?('.r10kignore')
|
22
|
+
ignore_modules = File.readlines('.r10kignore').each {|l| l.chomp!}
|
23
|
+
end
|
24
|
+
|
25
|
+
puppetfile.modules.each do |puppet_module|
|
26
|
+
next if ignore_modules.include? puppet_module.title
|
18
27
|
if puppet_module.class == R10K::Module::Forge
|
19
28
|
module_name = puppet_module.title.gsub('/', '-')
|
20
29
|
forge_version = PuppetForge::Module.find(module_name).current_release.version
|
@@ -23,6 +32,39 @@ module Ra10ke
|
|
23
32
|
puts "#{puppet_module.title} is OUTDATED: #{installed_version} vs #{forge_version}"
|
24
33
|
end
|
25
34
|
end
|
35
|
+
|
36
|
+
if puppet_module.class == R10K::Module::Git
|
37
|
+
remote = puppet_module.instance_variable_get(:@remote)
|
38
|
+
ref = puppet_module.instance_variable_get(:@desired_ref)
|
39
|
+
|
40
|
+
# some guards to prevent unnessicary execution
|
41
|
+
next unless ref
|
42
|
+
next if ref == 'master'
|
43
|
+
|
44
|
+
remote_refs = Git.ls_remote(remote)
|
45
|
+
|
46
|
+
# skip if ref is a branch
|
47
|
+
next if remote_refs['branches'].key?(ref)
|
48
|
+
|
49
|
+
ref_type = 'sha' if ref.match(/^[a-z0-9]{40}$/)
|
50
|
+
ref_type = 'tag' if remote_refs['tags'].key?(ref)
|
51
|
+
case ref_type
|
52
|
+
when 'sha'
|
53
|
+
latest_ref = remote_refs['head'][:sha]
|
54
|
+
when 'tag'
|
55
|
+
# we have to be opinionated here, due to multiple conventions only one can reign suppreme
|
56
|
+
# as such tag v#.#.# is what will pick.
|
57
|
+
if ref.match(/^[vV]\d/)
|
58
|
+
tags = remote_refs['tags']
|
59
|
+
version_tags = tags.select { |f| /^[vV]\d/.match(f) }
|
60
|
+
latest_ref = version_tags.keys.sort.last
|
61
|
+
end
|
62
|
+
else
|
63
|
+
raise "Unable to determine ref_type for #{puppet_module.title}"
|
64
|
+
end
|
65
|
+
|
66
|
+
puts "#{puppet_module.title} is OUTDATED: #{ref} vs #{latest_ref}" if ref != latest_ref
|
67
|
+
end
|
26
68
|
end
|
27
69
|
end
|
28
70
|
|
data/ra10ke.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = ["tampakrap@gmail.com"]
|
10
10
|
spec.description = %q{R10K and Puppetfile rake tasks}
|
11
11
|
spec.summary = %q{Syntax check for the Puppetfile, check for outdated installed puppet modules}
|
12
|
-
spec.homepage = "https://github.com/
|
12
|
+
spec.homepage = "https://github.com/voxpupuli/ra10ke"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
@@ -18,4 +18,5 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.add_dependency "rake"
|
19
19
|
spec.add_dependency "puppet_forge"
|
20
20
|
spec.add_dependency "r10k"
|
21
|
+
spec.add_dependency "git"
|
21
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ra10ke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Theo Chatzimichos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: git
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: R10K and Puppetfile rake tasks
|
56
70
|
email:
|
57
71
|
- tampakrap@gmail.com
|
@@ -59,6 +73,7 @@ executables: []
|
|
59
73
|
extensions: []
|
60
74
|
extra_rdoc_files: []
|
61
75
|
files:
|
76
|
+
- ".gitignore"
|
62
77
|
- CHANGELOG.md
|
63
78
|
- Gemfile
|
64
79
|
- LICENSE.txt
|
@@ -66,7 +81,7 @@ files:
|
|
66
81
|
- lib/ra10ke.rb
|
67
82
|
- lib/ra10ke/version.rb
|
68
83
|
- ra10ke.gemspec
|
69
|
-
homepage: https://github.com/
|
84
|
+
homepage: https://github.com/voxpupuli/ra10ke
|
70
85
|
licenses:
|
71
86
|
- MIT
|
72
87
|
metadata: {}
|