puppet-blacksmith 2.0.2 → 2.1.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 +15 -0
- data/lib/puppet_blacksmith.rb +4 -4
- data/lib/puppet_blacksmith/forge.rb +2 -2
- data/lib/puppet_blacksmith/git.rb +12 -4
- data/lib/puppet_blacksmith/modulefile.rb +2 -0
- data/lib/puppet_blacksmith/rake_tasks.rb +1 -1
- data/lib/puppet_blacksmith/version.rb +1 -1
- data/spec/data/Modulefile +0 -1
- data/spec/puppet_blacksmith/forge_spec.rb +18 -1
- data/spec/puppet_blacksmith/git_spec.rb +41 -0
- data/spec/puppet_blacksmith/modulefile_spec.rb +1 -1
- metadata +70 -48
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTAzNDJmZTgyMGJhYjE3MmY2ZDM1MzM0MjI0ZmYzYTBhNWM5ZjIxOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
M2RmMDlkZTljMzcwOWVlY2I5MzQ5MjJlYjEzMWE3YjAyYzAxZDkyMg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Yjc3MDI2MDNiMWQwY2RiNzcyNjgzYmE1MWExMmM2Nzg3ZDY2MWQ2NWE4MmIz
|
10
|
+
YmU3ZmFiYTEzNzNiMTI5OGRiNzc4MjZjMTk0MzhhZjhiOTBiN2JlOTY0MDMz
|
11
|
+
Mjk3MDdkZTlhZThlMzJiZWFhM2I2NDY1MjMwMTFlMTBhZWFmMjU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
N2JlMTY5Y2I3YjU5Y2M0Yzg4Mzg0Nzc4YmE5Yjc1NDEwYzcxNDIxYzRiNDBk
|
14
|
+
YjBmNmE2Y2Y0MTQ2YWE0ZmQ3Y2ViODZmMmM1M2IwYmQyY2U0OTQ1NmQ4MmYz
|
15
|
+
Yzg5ODEzN2ZmNWE4NDVmM2RmM2EzZTY1YTkzZWIyNGQzNDY0NzE=
|
data/lib/puppet_blacksmith.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
require 'puppet_blacksmith/error'
|
2
|
+
require 'puppet_blacksmith/forge'
|
3
|
+
require 'puppet_blacksmith/git'
|
4
|
+
require 'puppet_blacksmith/modulefile'
|
@@ -72,8 +72,8 @@ module Blacksmith
|
|
72
72
|
raise Blacksmith::Error, <<-eos
|
73
73
|
Could not find Puppet Forge credentials file '#{credentials_file}'
|
74
74
|
Please create it
|
75
|
-
---
|
76
|
-
|
75
|
+
---
|
76
|
+
url: https://forge.puppetlabs.com
|
77
77
|
username: myuser
|
78
78
|
password: mypassword
|
79
79
|
eos
|
@@ -25,18 +25,26 @@ module Blacksmith
|
|
25
25
|
s
|
26
26
|
end
|
27
27
|
|
28
|
+
def git_cmd_with_path(cmd)
|
29
|
+
"git --git-dir=#{File.join(path, '.git')} --work-tree=#{path} #{cmd}"
|
30
|
+
end
|
31
|
+
|
28
32
|
def exec_git(cmd)
|
29
33
|
out = ""
|
30
34
|
err = ""
|
35
|
+
exit_status = nil
|
36
|
+
new_cmd = git_cmd_with_path(cmd)
|
31
37
|
# wait_thr is nil in JRuby < 1.7.5 see http://jira.codehaus.org/browse/JRUBY-6409
|
32
|
-
new_cmd = "git --git-dir=#{File.join(path, '.git')} --work-tree=#{path} #{cmd}"
|
33
38
|
Open3.popen3(new_cmd) do |stdin, stdout, stderr, wait_thr|
|
34
39
|
out = stdout.read
|
35
40
|
err = stderr.read
|
36
|
-
|
41
|
+
exit_status = wait_thr.nil? ? nil : wait_thr.value
|
42
|
+
end
|
43
|
+
if exit_status.nil?
|
44
|
+
raise Blacksmith::Error, err unless err.empty?
|
45
|
+
elsif !exit_status.success?
|
46
|
+
raise Blacksmith::Error, err.empty? ? "Command #{new_cmd} failed with exit status #{exit_status}" : err
|
37
47
|
end
|
38
|
-
exit_status = $?
|
39
|
-
raise Blacksmith::Error, err unless exit_status.success?
|
40
48
|
return out
|
41
49
|
end
|
42
50
|
end
|
data/spec/data/Modulefile
CHANGED
@@ -11,6 +11,23 @@ describe 'Blacksmith::Forge' do
|
|
11
11
|
let(:version) { "1.0.0" }
|
12
12
|
let(:package) { File.dirname(__FILE__) + '/../data/maestrodev-ant-1.0.4.tar.gz' }
|
13
13
|
|
14
|
+
describe 'missing credentials file' do
|
15
|
+
before do
|
16
|
+
File.stub(:expand_path => '/home/mr_puppet/.puppetforge.yml')
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when the credentials file is missing" do
|
20
|
+
before do
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should raise an error" do
|
25
|
+
expect { foo = Blacksmith::Forge.new(nil, password, forge) }.to raise_error(/Could not find Puppet Forge credentials file '\/home\/mr\_puppet\/.puppetforge.yml'\s*Please create it\s*---\s*url: https:\/\/forge.puppetlabs.com\s*username: myuser\s*password: mypassword/)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
14
31
|
describe 'push' do
|
15
32
|
|
16
33
|
before do
|
@@ -29,7 +46,7 @@ describe 'Blacksmith::Forge' do
|
|
29
46
|
end
|
30
47
|
|
31
48
|
it "should push the module" do
|
32
|
-
|
49
|
+
|
33
50
|
end
|
34
51
|
end
|
35
52
|
|
@@ -21,4 +21,45 @@ describe 'Blacksmith::Git' do
|
|
21
21
|
out.chomp.should match(/^v1.0.0$/)
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
describe 'exec_git' do
|
26
|
+
let(:cmd) { 'log' }
|
27
|
+
let(:stdin) { nil }
|
28
|
+
let(:stdout) { '' }
|
29
|
+
let(:stderr) { '' }
|
30
|
+
let(:exit_code) { double('exit_code', :success? => true) }
|
31
|
+
let(:wait_thr) { double('wait_thr', :value => exit_code) }
|
32
|
+
|
33
|
+
context 'when git succeeds' do
|
34
|
+
before do
|
35
|
+
Open3.stub(:popen3).and_yield(nil, double(:read => stdout), double(:read => stderr), wait_thr)
|
36
|
+
expect { subject.exec_git(cmd) }.to_not raise_error
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when stderr is empty' do
|
40
|
+
it {}
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when stderr is not empty' do
|
44
|
+
let(:stderr) { 'some error' }
|
45
|
+
it {}
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'when git fails' do
|
51
|
+
before { subject.stub(:git_cmd_with_path => cmd) }
|
52
|
+
|
53
|
+
# this spec fails on jruby, can't detect exit code of script
|
54
|
+
context 'when stderr is empty' do
|
55
|
+
let(:cmd) { "git" } # exits with 1
|
56
|
+
it { expect { subject.exec_git(cmd) }.to raise_error(Blacksmith::Error, /^Command .* failed with exit status.*1$/) }
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'when stderr is not empty' do
|
60
|
+
let(:cmd) { "git help xxxx" } # exits with 1 and prints to stdout
|
61
|
+
it { expect { subject.exec_git(cmd) }.to raise_error(Blacksmith::Error, /No manual entry for gitxxx/) }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
24
65
|
end
|
@@ -7,7 +7,7 @@ describe 'Blacksmith::Modulefile' do
|
|
7
7
|
|
8
8
|
context 'when modulefile is parsed' do
|
9
9
|
it { subject.metadata.version.should eql("1.0.0") }
|
10
|
-
it { subject.metadata.
|
10
|
+
it { subject.metadata.author.should eql("maestrodev") }
|
11
11
|
it { subject.metadata.name.should eql("test") }
|
12
12
|
end
|
13
13
|
|
metadata
CHANGED
@@ -1,115 +1,141 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-blacksmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
5
|
-
prerelease:
|
4
|
+
version: 2.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- MaestroDev
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rest-client
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: puppet
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ! '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 2.7.16
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.7.16
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: nokogiri
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
45
|
- - ! '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rake
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
59
|
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: puppetlabs_spec_helper
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
73
|
- - ! '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: cucumber
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ! '>='
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: aruba
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
101
|
- - ! '>='
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: '0'
|
88
104
|
type: :development
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
91
111
|
- !ruby/object:Gem::Dependency
|
92
112
|
name: rspec
|
93
|
-
requirement:
|
94
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
95
114
|
requirements:
|
96
115
|
- - ! '>='
|
97
116
|
- !ruby/object:Gem::Version
|
98
117
|
version: 2.7.0
|
99
118
|
type: :development
|
100
119
|
prerelease: false
|
101
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 2.7.0
|
102
125
|
- !ruby/object:Gem::Dependency
|
103
126
|
name: webmock
|
104
|
-
requirement:
|
105
|
-
none: false
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
106
128
|
requirements:
|
107
129
|
- - ! '>='
|
108
130
|
- !ruby/object:Gem::Version
|
109
131
|
version: '0'
|
110
132
|
type: :development
|
111
133
|
prerelease: false
|
112
|
-
version_requirements:
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
113
139
|
description: Puppet module tools for development and Puppet Forge management
|
114
140
|
email:
|
115
141
|
- info@maestrodev.com
|
@@ -117,53 +143,49 @@ executables: []
|
|
117
143
|
extensions: []
|
118
144
|
extra_rdoc_files: []
|
119
145
|
files:
|
146
|
+
- LICENSE
|
120
147
|
- lib/puppet_blacksmith.rb
|
148
|
+
- lib/puppet_blacksmith/error.rb
|
121
149
|
- lib/puppet_blacksmith/forge.rb
|
150
|
+
- lib/puppet_blacksmith/git.rb
|
122
151
|
- lib/puppet_blacksmith/modulefile.rb
|
123
152
|
- lib/puppet_blacksmith/rake_tasks.rb
|
124
153
|
- lib/puppet_blacksmith/version.rb
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
- spec/spec_helper.rb
|
129
|
-
- spec/puppet_blacksmith/git_spec.rb
|
154
|
+
- spec/data/Modulefile
|
155
|
+
- spec/data/forge_error.html
|
156
|
+
- spec/data/maestrodev-ant-1.0.4.tar.gz
|
130
157
|
- spec/puppet_blacksmith/forge_spec.rb
|
158
|
+
- spec/puppet_blacksmith/git_spec.rb
|
131
159
|
- spec/puppet_blacksmith/modulefile_spec.rb
|
132
|
-
- spec/
|
133
|
-
- spec/data/forge_error.html
|
134
|
-
- spec/data/Modulefile
|
160
|
+
- spec/spec_helper.rb
|
135
161
|
homepage: http://github.com/maestrodev/puppet-blacksmith
|
136
162
|
licenses: []
|
163
|
+
metadata: {}
|
137
164
|
post_install_message:
|
138
165
|
rdoc_options: []
|
139
166
|
require_paths:
|
140
167
|
- lib
|
141
168
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
-
none: false
|
143
169
|
requirements:
|
144
170
|
- - ! '>='
|
145
171
|
- !ruby/object:Gem::Version
|
146
172
|
version: '0'
|
147
|
-
segments:
|
148
|
-
- 0
|
149
|
-
hash: 936353051533112818
|
150
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
174
|
requirements:
|
153
175
|
- - ! '>='
|
154
176
|
- !ruby/object:Gem::Version
|
155
177
|
version: '0'
|
156
178
|
requirements: []
|
157
179
|
rubyforge_project:
|
158
|
-
rubygems_version:
|
180
|
+
rubygems_version: 2.2.2
|
159
181
|
signing_key:
|
160
|
-
specification_version:
|
182
|
+
specification_version: 4
|
161
183
|
summary: Tasks to manage Puppet module builds
|
162
184
|
test_files:
|
163
185
|
- spec/spec_helper.rb
|
164
|
-
- spec/puppet_blacksmith/git_spec.rb
|
165
|
-
- spec/puppet_blacksmith/forge_spec.rb
|
166
|
-
- spec/puppet_blacksmith/modulefile_spec.rb
|
167
186
|
- spec/data/maestrodev-ant-1.0.4.tar.gz
|
168
187
|
- spec/data/forge_error.html
|
169
188
|
- spec/data/Modulefile
|
189
|
+
- spec/puppet_blacksmith/forge_spec.rb
|
190
|
+
- spec/puppet_blacksmith/modulefile_spec.rb
|
191
|
+
- spec/puppet_blacksmith/git_spec.rb
|