generate-puppetfile 0.9.4 → 0.9.5

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 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