generate-puppetfile 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MGRhMmMzNmZhZDdiNzQ3ZTIyOThjMDY4OTEwYmQ1N2M3ODhmNzUwNA==
4
+ MmFiNzJhMGJlNTc1YjJmZWFiZjhhYzdmYTMzZDAwMTljNjg1ODk5Zg==
5
5
  data.tar.gz: !binary |-
6
- NjUzMDg5M2UzMDc1ZDQxNzU0M2Q2MDRlN2VlODI0NmYwOTA2YmRjNw==
6
+ YWFmZTE1ZDQ4ZDI5MGYzYTQzNDYzNjY1ZGIwMTliMTJiMmEwYTY4NA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZGE2MDk0N2VmYzA4ZjFiNzJmZTk5N2M3OTRhZDg4Yjg5MDU5NjA1MWNmNjcz
10
- YWMzMGIzM2RkMTFkODI0YzE5MzgwZTUxZTYwYmE2ZjNiZGIzNWZjNzg2YTY0
11
- NDI1ODAzM2U4YTZlOTIzMWFhYWMyNzY5ZDMwYjFjYTRmOWVmYjc=
9
+ OWI2YzdhN2E4YjJiNzNhNjY0ZjY5YzU5YjI3NDZiMjllMGI5Nzg3MWFkZDZh
10
+ N2NlMGJhYWVlNTk1NDAyMzgxYzlmZTY4MzNkYTFhNDQ4ODI3MTVhMmY4NTQ3
11
+ MGMxODE2NmE4OWQxNDdjNzdjMzhlMDg5NTI1ODZiYmZjYjdmM2U=
12
12
  data.tar.gz: !binary |-
13
- NzljNTgzYzhjYmY3MDAxNzMxNjRmMWE0ZjM1ZmRhZWNhNTZmYTliMWVhNTRi
14
- ZTEwZjYxZjIwNjM0ZTA4NGJjMDYzYTkwNzk4NGYyNTFiOWI1MjYxMjRlNjYw
15
- N2U4YWIzOThhYjQ3NGE1MjRiOGU0N2JhMWZhYjM5NGM4NWIyZTY=
13
+ MDU4YzdhZDZkZGY5YjdjYWViODVhNWVlN2I3NjZhNzE5NTk2YTM3YmIyODll
14
+ Y2RlOWY1NDEwNTJhYmRjZjgwZjFkODUxZjAyNWIwYTY3ZjlhZGExZjI4ODZj
15
+ YzVhMTRhMzA2ZWRmNzU5NjI1YjZkOTU0NzAzYWRjYTE1MjA4NzA=
@@ -3,6 +3,7 @@ require 'generate_puppetfile'
3
3
  require 'generate_puppetfile/optparser'
4
4
  require 'fileutils'
5
5
  require 'tempfile'
6
+ require 'json'
6
7
 
7
8
  module GeneratePuppetfile
8
9
  # Internal: The Bin class contains the logic for calling generate_puppetfile at the command line
@@ -57,7 +58,6 @@ module GeneratePuppetfile
57
58
 
58
59
  forge_module_list.push(*cli_modules) if @args
59
60
  forge_module_list.push(*puppetfile_contents[:modules]) if puppetfile_contents[:modules]
60
-
61
61
  list_forge_modules(forge_module_list) if puppetfile_contents && @options[:debug]
62
62
  list_extras(puppetfile_contents[:extras]) if puppetfile_contents[:extras] && @options[:debug]
63
63
 
@@ -81,6 +81,11 @@ module GeneratePuppetfile
81
81
  display_puppetfile(puppetfile_contents)
82
82
  end
83
83
 
84
+ if @options[:create_fixtures]
85
+ fixtures_data = generate_fixtures_data()
86
+ write_fixtures_data(fixtures_data)
87
+ end
88
+
84
89
  cleanup_workspace()
85
90
 
86
91
  return 0
@@ -219,5 +224,39 @@ forge 'http://forge.puppetlabs.com'
219
224
  def cleanup_workspace ()
220
225
  FileUtils.rm_rf(@workspace)
221
226
  end
227
+
228
+ # Public: Generate a simple fixtures file.
229
+ def generate_fixtures_data ()
230
+ puts "\nGenerating .fixtures.yml using module name #{@options[:modulename]}" unless @options[:silent]
231
+
232
+ # Header for fixtures file creates a symlink for the current module"
233
+ fixtures_data = <<-EOF
234
+ fixtures:
235
+ symlinks:
236
+ #{@options[:modulename]}: "\#{source_dir}"
237
+ EOF
238
+
239
+
240
+ module_directories = Dir.glob("#{@workspace}/*")
241
+ if (module_directories != [])
242
+ fixtures_data += " repositories:\n"
243
+ end
244
+ module_directories.each do |module_directory|
245
+ name = File.basename(module_directory)
246
+ file = File.read("#{module_directory}/metadata.json")
247
+ project_page = (JSON.parse(file))["project_page"]
248
+ fixtures_data += " #{name}: #{project_page}\n"
249
+ puts "Found a module '#{name}' with a project page of #{project_page}." if @options[:debug]
250
+ end unless module_directories == []
251
+
252
+ fixtures_data
253
+ end
254
+
255
+ def write_fixtures_data (data)
256
+ File.open('.fixtures.yml', 'w') do |file|
257
+ file.write data
258
+ end
259
+ end
260
+
222
261
  end
223
262
  end
@@ -9,6 +9,9 @@ module GeneratePuppetfile
9
9
  # Returns an OptionParser object.
10
10
  def self.parse(args)
11
11
  options = {}
12
+ # Default values
13
+ options[:modulename] = 'profile'
14
+
12
15
  opts = OptionParser.new do |opts|
13
16
  opts.banner = "generate-puppetfile [OPTIONS] [<MODULE> ... <MODULE>]"
14
17
 
@@ -18,26 +21,34 @@ module GeneratePuppetfile
18
21
  exit 1
19
22
  end
20
23
 
21
- options[:puppetfile] = file
24
+ options[:puppetfile] = file
22
25
  end
23
26
 
24
- opts.on('-c', '--create_puppetfile', 'Create a Puppetfile in the working directory. Warning: overwrites any existing file with the same name.') do
25
- options[:create_puppetfile] = true
26
- end
27
+ opts.on('-c', '--create_puppetfile', 'Create a Puppetfile in the working directory. Warning: overwrites any existing file with the same name.') do
28
+ options[:create_puppetfile] = true
29
+ end
27
30
 
28
- opts.on('-s', '--silent', 'Run in silent mode. Supresses all non-debug output. Adds the -c flag automatically.') do
29
- options[:silent] = true
30
- options[:create_puppetfile] = true
31
- end
31
+ opts.on('-f', '--fixtures', 'Create a .fixtures.yml file in the working directory. Somewhat naive.') do
32
+ options[:create_fixtures] = true
33
+ end
32
34
 
33
- opts.on('-d', '--debug', 'Enable debug logging') do
34
- options[:debug] = true
35
- end
35
+ opts.on('-m', '--modulename NAME', "Name of the module the fixtures file will be used with. Optional. Defaults to 'profile'.") do |name|
36
+ options[:modulename] = name
37
+ end
36
38
 
37
- opts.on_tail('-v', '--version', 'Show version') do
38
- puts "generate-puppetfile v#{GeneratePuppetfile::VERSION}"
39
- exit
40
- end
39
+ opts.on('-s', '--silent', 'Run in silent mode. Supresses all non-debug output. Adds the -c flag automatically.') do
40
+ options[:silent] = true
41
+ options[:create_puppetfile] = true
42
+ end
43
+
44
+ opts.on('-d', '--debug', 'Enable debug logging') do
45
+ options[:debug] = true
46
+ end
47
+
48
+ opts.on_tail('-v', '--version', 'Show version') do
49
+ puts "generate-puppetfile v#{GeneratePuppetfile::VERSION}"
50
+ exit
51
+ end
41
52
  end
42
53
 
43
54
  opts.parse!(args)
@@ -1,3 +1,3 @@
1
1
  module GeneratePuppetfile
2
- VERSION = '0.9.4'
2
+ VERSION = '0.9.5'
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.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Nelson
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1'
55
69
  description: Generate a Puppetfile for use with r10k based on an existing file or
56
70
  a list of modules.
57
71
  email: rnelson0@gmail.com