generate-puppetfile 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OGVmN2JhZWExMjZjZGViZDk1N2Q5OTc1NjIxMDFlNmVkYzlkNzViZg==
5
- data.tar.gz: !binary |-
6
- ZjBlZWI4OGVhYjA2MTUyM2Q1MjY4YjBjZDQ0MjFkODE0YTE5ZTdlZg==
2
+ SHA1:
3
+ metadata.gz: 046880c28c4dd0c6b7e9a4c90e0c367d7c3ff98f
4
+ data.tar.gz: f54a50e8fc4ea2cf60b7e3f1cf68f2a415ede968
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTcwYjg3YmU3ODkwNTliMzc4NDZjMTRkOTljZTlmYzJhM2NjZjM0N2Y0N2M2
10
- Njc5MTdkNzljODNhMjZjYmY0NjhmZTliMTY5ZWZiM2VmYzIxZGUyMDU3NDcz
11
- OTQyNWFhYWMxYTFmMmRkZTI4YTljODQ4MWNhNmQxMzA5MzQ0OTg=
12
- data.tar.gz: !binary |-
13
- MTVkNmI4YzJlMGJjMmU2YmZhNjFiOTZiYmY1YmJlYTZlY2E0YjYzY2FhN2Zl
14
- MWNhNmE0ZmIyNjQyMWRkNjhiMTgwYWVjMzc2N2IxZWU4NWY4OWVjYzUxNTMz
15
- NGYzNTMxYmNlYmI0YjMyZDNlY2Q1NDFmODUyZjMzM2I1ZDA5YTg=
6
+ metadata.gz: 91f353684c05b1043a821ce7db214f073a380df2f99b105a05b1f23e18223048b749c11f2441578733ceb6fb4025f03d0bae36815c801cbf4ded8be18f279648
7
+ data.tar.gz: b05c4d699fb020dd5d2fecfe85f66871459dc4cc0c73e7cd2418c6ef50cafe8c6b755bff4687fea7f7acadabd50d1ef2748ebad0e90a91b687630a7b057bce98
@@ -4,14 +4,17 @@ require 'generate_puppetfile/optparser'
4
4
  require 'fileutils'
5
5
  require 'tempfile'
6
6
  require 'json'
7
+ require 'mkmf'
7
8
 
8
9
  module GeneratePuppetfile
9
10
  # Internal: The Bin class contains the logic for calling generate_puppetfile at the command line
10
11
  class Bin
11
- Module_regex = Regexp.new("mod ['\"]([a-z0-9_]+\/[a-z0-9_]+)['\"](, ['\"](\\d\.\\d\.\\d)['\"])?", Regexp::IGNORECASE)
12
+ Module_Regex = Regexp.new("mod ['\"]([a-z0-9_]+\/[a-z0-9_]+)['\"](, ['\"](\\d\.\\d\.\\d)['\"])?", Regexp::IGNORECASE)
12
13
  @options = {} # Options hash
13
14
  @workspace = nil # Working directory for module download and inspection
14
15
  Silence = '>/dev/null 2>&1 '
16
+ Puppetfile_Header = '# Modules discovered by generate-puppetfile'
17
+ Extras_Note = '# Discovered elements from existing Puppetfile'
15
18
 
16
19
  # Public: Initialize a new GeneratePuppetfile::Bin
17
20
  #
@@ -38,6 +41,12 @@ module GeneratePuppetfile
38
41
  return 1
39
42
  end
40
43
 
44
+ if (! verify_puppet_exists())
45
+ $stderr.puts "generate-puppetfile: Could not find a 'puppet' executable."
46
+ $stderr.puts " Please make puppet available in your path before trying again."
47
+ return 1
48
+ end
49
+
41
50
  forge_module_list = Array.new
42
51
 
43
52
  if @args
@@ -148,14 +157,15 @@ Your Puppetfile has been generated. Copy and paste between the markers:
148
157
  }
149
158
 
150
159
  File.foreach(puppetfile) do |line|
151
- if Module_regex.match(line)
160
+ if Module_Regex.match(line)
152
161
  name = $1
153
162
  print " #{name} looks like a forge module.\n" if @options[:debug]
154
163
  puppetfile_contents[:modules].push(name)
155
164
  else
156
165
  next if line =~ /^forge/
157
166
  next if line =~ /^\s+$/
158
- next if line =~ /# Discovered elements from existing Puppetfile/
167
+ next if line =~ /#{Puppetfile_Header}/
168
+ next if line =~ /#{Extras_Note}/
159
169
 
160
170
  puppetfile_contents[:extras].push(line)
161
171
  end
@@ -164,6 +174,12 @@ Your Puppetfile has been generated. Copy and paste between the markers:
164
174
  puppetfile_contents
165
175
  end
166
176
 
177
+ # Public: Verify that Puppet is available in the path
178
+ def verify_puppet_exists()
179
+ MakeMakefile::Logging.instance_variable_set(:@logfile, File::NULL)
180
+ find_executable0('puppet')
181
+ end
182
+
167
183
  # Public: Download the list of modules and their dependencies to @workspace
168
184
  #
169
185
  # module_list is an array of forge module names to be downloaded
@@ -173,6 +189,7 @@ Your Puppetfile has been generated. Copy and paste between the markers:
173
189
  command = "puppet module install #{name} "
174
190
  command += @modulepath + Silence
175
191
 
192
+ puts "Calling '#{command}'" if @options[:debug]
176
193
  system(command)
177
194
  end
178
195
  end
@@ -202,12 +219,12 @@ Your Puppetfile has been generated. Copy and paste between the markers:
202
219
  puppetfile_contents = <<-EOF
203
220
  forge 'http://forge.puppetlabs.com'
204
221
 
205
- # Modules discovered by generate-puppetfile
222
+ #{Puppetfile_Header}
206
223
  EOF
207
224
 
208
225
  puppetfile_contents += generate_module_output()
209
226
 
210
- puppetfile_contents += "# Discovered elements from existing Puppetfile\n" unless extras == []
227
+ puppetfile_contents += "#{Extras_Note}\n" unless extras == []
211
228
  extras.each do |line|
212
229
  puppetfile_contents += "#{line}"
213
230
  end unless extras == []
@@ -1,3 +1,3 @@
1
1
  module GeneratePuppetfile
2
- VERSION = '0.9.6'
2
+ VERSION = '0.9.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generate-puppetfile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Nelson
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: '10'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: '10'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -74,8 +74,8 @@ executables:
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
- - README.md
78
77
  - bin/generate-puppetfile
78
+ - README.md
79
79
  - lib/generate_puppetfile.rb
80
80
  - lib/generate_puppetfile/bin.rb
81
81
  - lib/generate_puppetfile/optparser.rb
@@ -90,17 +90,17 @@ require_paths:
90
90
  - lib
91
91
  required_ruby_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ! '>='
93
+ - - '>='
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  requirements:
98
- - - ! '>='
98
+ - - '>='
99
99
  - !ruby/object:Gem::Version
100
100
  version: '0'
101
101
  requirements: []
102
102
  rubyforge_project:
103
- rubygems_version: 2.4.3
103
+ rubygems_version: 2.0.14
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: Generate a Puppetfile