pdk 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1b4321e6c37cde43ae58cb4ca94cd578254270065c698c87455aa37976cea36
4
- data.tar.gz: 054d826aefa38e7697d7b45e6f9c6733f4ad2f36501c9cb34dab7c1c6e47d2af
3
+ metadata.gz: fff9ce82e1ef158819f1089c8350fde37df2c9d8e105b09e4ecea52f542469bb
4
+ data.tar.gz: cff148b17b8175f7fe5401d5de87bebd36de18b939dcec7c456793d1da674ef7
5
5
  SHA512:
6
- metadata.gz: 6ab2eba8dc386d45b6894a4aac0e17ff24208890fd73932cdebc10e9ffa0405e30280de45fc6190f24e3042b2ad7b208714171f581922be1a7bc601d6d212934
7
- data.tar.gz: 52da98af48384e23b1fb2ca97dc1ad77d4811aa9f5dc6d9eaa89f9894e6d33a7e533b3b612699a33f9bbb02a3b29bd64a9b9b498cf04130288d16c78399f8b8b
6
+ metadata.gz: 0b8b0dc86dec798fcb51c8c1ab44ae0f591f84e0b6ee86ad6ede292e3fbd496495584ce83bcafdc6791bf93bdb134678033dbb695e9fb84519844bb7a776e69a
7
+ data.tar.gz: 365ba46da5e62d7519b9df797140cf75c904e2d64765b1ef72a6161e53a0e98bba5c2a8948404c6e2aff67b45678e842bd1621b86b8f334e4a7add46881948d3
@@ -4,6 +4,30 @@ All changes to this repo will be documented in this file.
4
4
  See the [release notes](https://puppet.com/docs/pdk/latest/release_notes.html) for a high-level summary.
5
5
 
6
6
 
7
+ ## [v1.16.0](https://github.com/puppetlabs/pdk/tree/v1.16.0) (2020-02-05)
8
+ [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.15.0...v1.16.0)
9
+
10
+ **Implemented enhancements:**
11
+
12
+ - \(PDK-1545\) Include template-ref in module generation output [\#840](https://github.com/puppetlabs/pdk/pull/840) ([rodjek](https://github.com/rodjek))
13
+ - \(PDK-1587\) Reject paths with non-ASCII characters when building [\#832](https://github.com/puppetlabs/pdk/pull/832) ([rodjek](https://github.com/rodjek))
14
+ - \(PDK-1588\) Increase granularity of `pdk bundle` analytics [\#827](https://github.com/puppetlabs/pdk/pull/827) ([rodjek](https://github.com/rodjek))
15
+ - \(PDK-1557\) Detect Control Repositories [\#826](https://github.com/puppetlabs/pdk/pull/826) ([glennsarti](https://github.com/glennsarti))
16
+ - \(PDK-1556\) Use the module root when generating objects [\#824](https://github.com/puppetlabs/pdk/pull/824) ([glennsarti](https://github.com/glennsarti))
17
+
18
+ **Fixed bugs:**
19
+
20
+ - Puppetfile Resolver can't detect version of Puppet from PDK using Visual Studio Code [\#830](https://github.com/puppetlabs/pdk/issues/830)
21
+ - Validate and Test failing on new module [\#811](https://github.com/puppetlabs/pdk/issues/811)
22
+
23
+ **Merged pull requests:**
24
+
25
+ - \(maint\) Fix license\_finder failures [\#837](https://github.com/puppetlabs/pdk/pull/837) ([glennsarti](https://github.com/glennsarti))
26
+ - \(PDK-1590\) Remove Gemfile.lock before running bundle update [\#834](https://github.com/puppetlabs/pdk/pull/834) ([rodjek](https://github.com/rodjek))
27
+ - \(maint\) Use case insensitive environment variable names on Windows [\#825](https://github.com/puppetlabs/pdk/pull/825) ([glennsarti](https://github.com/glennsarti))
28
+ - \(maint\) Update methods for Bundler 2.x deprecations [\#820](https://github.com/puppetlabs/pdk/pull/820) ([glennsarti](https://github.com/glennsarti))
29
+ - \(MAINT\) Refactor how gem\_path to bundler is calculated [\#745](https://github.com/puppetlabs/pdk/pull/745) ([scotje](https://github.com/scotje))
30
+
7
31
  ## [v1.15.0](https://github.com/puppetlabs/pdk/tree/v1.15.0) (2019-12-13)
8
32
  [Full Changelog](https://github.com/puppetlabs/pdk/compare/v1.14.1...v1.15.0)
9
33
 
data/lib/pdk.rb CHANGED
@@ -3,7 +3,9 @@ require 'pdk/i18n'
3
3
  module PDK
4
4
  autoload :Analytics, 'pdk/analytics'
5
5
  autoload :AnswerFile, 'pdk/answer_file'
6
+ autoload :Bolt, 'pdk/bolt'
6
7
  autoload :Config, 'pdk/config'
8
+ autoload :ControlRepo, 'pdk/control_repo'
7
9
  autoload :Generate, 'pdk/generate'
8
10
  autoload :Logger, 'pdk/logger'
9
11
  autoload :Module, 'pdk/module'
@@ -0,0 +1,19 @@
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module Bolt
5
+ # Returns true or false depending on if any of the common files and directories in
6
+ # a Bolt Project are found in the specified directory. If a directory is not specified,
7
+ # the current working directory is used.
8
+ #
9
+ # @see https://puppet.com/docs/bolt/latest/bolt_project_directories.html
10
+ #
11
+ # @return [boolean] True if any bolt specific files or directories are present
12
+ #
13
+ def bolt_project_root?(path = Dir.pwd)
14
+ return true if File.basename(path) == 'Boltdir' && PDK::Util::Filesystem.directory?(path)
15
+ PDK::Util::Filesystem.file?(File.join(path, 'bolt.yaml'))
16
+ end
17
+ module_function :bolt_project_root?
18
+ end
19
+ end
@@ -20,7 +20,11 @@ EOF
20
20
 
21
21
  PDK::CLI::Util.validate_puppet_version_opts({})
22
22
 
23
- PDK::CLI::Util.analytics_screen_view('bundle')
23
+ screen_view_name = ['bundle']
24
+ screen_view_name << args[0] if args.size >= 1
25
+ screen_view_name << args[1] if args.size >= 2 && args[0] == 'exec'
26
+
27
+ PDK::CLI::Util.analytics_screen_view(screen_view_name.join('_'))
24
28
 
25
29
  # Ensure that the correct Ruby is activated before running command.
26
30
  puppet_env = PDK::CLI::Util.puppet_from_opts_or_env({})
@@ -48,7 +48,7 @@ module PDK::CLI
48
48
  opts[:'full-interview'] = false
49
49
  end
50
50
 
51
- PDK::Module::Convert.invoke(opts)
51
+ PDK::Module::Convert.invoke(PDK::Util.module_root, opts)
52
52
  end
53
53
  end
54
54
  end
@@ -163,7 +163,8 @@ module PDK
163
163
  require 'pdk/util/ruby_version'
164
164
 
165
165
  resolved_env['GEM_HOME'] = PDK::Util::RubyVersion.gem_home
166
- resolved_env['GEM_PATH'] = PDK::Util::RubyVersion.gem_path
166
+ gem_path = PDK::Util::RubyVersion.gem_path
167
+ resolved_env['GEM_PATH'] = gem_path.empty? ? resolved_env['GEM_HOME'] : gem_path
167
168
 
168
169
  # Make sure invocation of Ruby prefers our private installation.
169
170
  package_binpath = PDK::Util.package_install? ? File.join(PDK::Util.pdk_package_basedir, 'bin') : nil
@@ -171,7 +172,7 @@ module PDK
171
172
  resolved_env['PATH'] = [
172
173
  PDK::Util::RubyVersion.bin_path,
173
174
  File.join(resolved_env['GEM_HOME'], 'bin'),
174
- PDK::Util::RubyVersion.gem_paths_raw.map { |gem_path| File.join(gem_path, 'bin') },
175
+ PDK::Util::RubyVersion.gem_paths_raw.map { |gem_path_raw| File.join(gem_path_raw, 'bin') },
175
176
  package_binpath,
176
177
  PDK::Util.package_install? ? PDK::Util::Git.git_paths : nil,
177
178
  PDK::Util::Env['PATH'],
@@ -195,8 +196,13 @@ module PDK
195
196
  def run_process_in_clean_env!
196
197
  require 'bundler'
197
198
 
198
- ::Bundler.with_clean_env do
199
- run_process!
199
+ # Bundler 2.1.0 has deprecated the use of `Bundler.with_clean_env` in favour of
200
+ # `Bundler.with_unbundled_env`. So prefer to use the newer method if it exists
201
+ # otherwise revert back to the old method.
202
+ if ::Bundler.respond_to?(:with_unbundled_env)
203
+ run_process_with_unbundled_env!
204
+ else
205
+ run_process_with_clean_env!
200
206
  end
201
207
  end
202
208
 
@@ -236,6 +242,28 @@ module PDK
236
242
  PDK.logger.debug(_("Execution of '%{command}' complete (duration: %{duration_in_seconds}s; exit code: %{exit_code})") %
237
243
  { command: command_string, duration_in_seconds: @duration, exit_code: @process.exit_code })
238
244
  end
245
+
246
+ private
247
+
248
+ #:nocov:
249
+ # These are just bundler helper methods and are tested via the public run_process_in_clean_env! method
250
+ def run_process_with_unbundled_env!
251
+ # Bundler 2.1.0 or greater
252
+ ::Bundler.with_unbundled_env do
253
+ run_process!
254
+ end
255
+ end
256
+ #:nocov:
257
+
258
+ #:nocov:
259
+ # These are just bundler helper methods and are tested via the public run_process_in_clean_env! method
260
+ def run_process_with_clean_env!
261
+ # Bundler 2.0.2 or less
262
+ ::Bundler.with_clean_env do
263
+ run_process!
264
+ end
265
+ end
266
+ #:nocov:
239
267
  end
240
268
  end
241
269
  end
@@ -13,7 +13,6 @@ module PDK::CLI
13
13
  )
14
14
 
15
15
  class_name = args[0]
16
- module_dir = Dir.pwd
17
16
 
18
17
  if class_name.nil? || class_name.empty?
19
18
  puts command.help
@@ -26,7 +25,7 @@ module PDK::CLI
26
25
 
27
26
  PDK::CLI::Util.analytics_screen_view('new_class', opts)
28
27
 
29
- PDK::Generate::PuppetClass.new(module_dir, class_name, opts).run
28
+ PDK::Generate::PuppetClass.new(PDK::Util.module_root, class_name, opts).run
30
29
  end
31
30
  end
32
31
  end
@@ -11,7 +11,6 @@ module PDK::CLI
11
11
  )
12
12
 
13
13
  defined_type_name = args[0]
14
- module_dir = Dir.pwd
15
14
 
16
15
  if defined_type_name.nil? || defined_type_name.empty?
17
16
  puts command.help
@@ -26,7 +25,7 @@ module PDK::CLI
26
25
 
27
26
  require 'pdk/generate/defined_type'
28
27
 
29
- PDK::Generate::DefinedType.new(module_dir, defined_type_name, opts).run
28
+ PDK::Generate::DefinedType.new(PDK::Util.module_root, defined_type_name, opts).run
30
29
  end
31
30
  end
32
31
  end
@@ -8,7 +8,6 @@ module PDK::CLI
8
8
  PDK::CLI::Util.ensure_in_module!
9
9
 
10
10
  provider_name = args[0]
11
- module_dir = Dir.pwd
12
11
 
13
12
  if provider_name.nil? || provider_name.empty?
14
13
  puts command.help
@@ -23,7 +22,7 @@ module PDK::CLI
23
22
 
24
23
  require 'pdk/generate/provider'
25
24
 
26
- PDK::Generate::Provider.new(module_dir, provider_name, opts).run
25
+ PDK::Generate::Provider.new(PDK::Util.module_root, provider_name, opts).run
27
26
  end
28
27
  end
29
28
  end
@@ -15,7 +15,6 @@ module PDK::CLI
15
15
  )
16
16
 
17
17
  task_name = args[0]
18
- module_dir = Dir.pwd
19
18
 
20
19
  if task_name.nil? || task_name.empty?
21
20
  puts command.help
@@ -28,7 +27,7 @@ module PDK::CLI
28
27
 
29
28
  PDK::CLI::Util.analytics_screen_view('new_task', opts)
30
29
 
31
- PDK::Generate::Task.new(module_dir, task_name, opts).run
30
+ PDK::Generate::Task.new(PDK::Util.module_root, task_name, opts).run
32
31
  end
33
32
  end
34
33
  end
@@ -18,7 +18,6 @@ module PDK::CLI
18
18
  )
19
19
 
20
20
  object_name = args[0]
21
- module_dir = Dir.pwd
22
21
 
23
22
  if object_name.nil? || object_name.empty?
24
23
  puts command.help
@@ -41,7 +40,7 @@ module PDK::CLI
41
40
 
42
41
  PDK::CLI::Util.analytics_screen_view('new_test', opts)
43
42
 
44
- generator.new(module_dir, obj['name'], opts.merge(spec_only: true)).run
43
+ generator.new(PDK::Util.module_root, obj['name'], opts.merge(spec_only: true)).run
45
44
  rescue PDK::Util::PuppetStrings::NoObjectError
46
45
  raise PDK::CLI::ExitWithError, _('Unable to find anything called "%{object}" to generate unit tests for.') % { object: object_name }
47
46
  rescue PDK::Util::PuppetStrings::NoGeneratorError => e
@@ -8,7 +8,6 @@ module PDK::CLI
8
8
  PDK::CLI::Util.ensure_in_module!
9
9
 
10
10
  transport_name = args[0]
11
- module_dir = Dir.pwd
12
11
 
13
12
  if transport_name.nil? || transport_name.empty?
14
13
  puts command.help
@@ -21,7 +20,7 @@ module PDK::CLI
21
20
 
22
21
  require 'pdk/generate/transport'
23
22
 
24
- PDK::Generate::Transport.new(module_dir, transport_name, opts).run
23
+ PDK::Generate::Transport.new(PDK::Util.module_root, transport_name, opts).run
25
24
  end
26
25
  end
27
26
  end
@@ -46,7 +46,7 @@ module PDK::CLI
46
46
 
47
47
  PDK::CLI::Util.analytics_screen_view('update', opts)
48
48
 
49
- updater = PDK::Module::Update.new(opts)
49
+ updater = PDK::Module::Update.new(PDK::Util.module_root, opts)
50
50
 
51
51
  if updater.pinned_to_puppetlabs_template_tag?
52
52
  PDK.logger.info _(
@@ -0,0 +1,50 @@
1
+ require 'pdk'
2
+
3
+ module PDK
4
+ module ControlRepo
5
+ CONTROL_REPO_FILES = %w[environment.conf Puppetfile].freeze
6
+
7
+ # Returns path to the root of the Control Repo being worked on.
8
+ #
9
+ # An environment.conf is required for a PDK compatible Control Repo,
10
+ # whereas Puppetfile is optional.
11
+ #
12
+ # Note - A Bolt Project can also be a Control Repo.
13
+ #
14
+ # Note - Non-Directory environments can exist however directory based
15
+ # environments are the supported/preferred way.
16
+ #
17
+ # @see https://puppet.com/docs/pe/latest/control_repo.html
18
+ #
19
+ # @param strict_check [Boolean] When strict_check is true, only return the path
20
+ # if the Control Repo is strictly _only_ a control repository. For example,
21
+ # not also a Puppet Bolt project directory Default is false.
22
+ #
23
+ # @return [String, nil] Fully qualified base path to Control Repo, or nil if
24
+ # the current working dir does not appear to be within a Control Repo.
25
+ def find_control_repo_root(strict_check = false)
26
+ environment_conf_path = PDK::Util.find_upwards('environment.conf')
27
+ path = if environment_conf_path
28
+ File.dirname(environment_conf_path)
29
+ elsif control_repo_root?(Dir.pwd)
30
+ Dir.pwd
31
+ else
32
+ nil
33
+ end
34
+ return path if path.nil? || !strict_check
35
+ PDK::Bolt.bolt_project_root?(path) ? nil : path
36
+ end
37
+ module_function :find_control_repo_root
38
+
39
+ # Returns true or false depending on if any of the common files in a Control Repo
40
+ # are found in the specified directory. If a directory is not specified, the current
41
+ # working directory is used.
42
+ #
43
+ # @return [boolean] True if any folders from CONTROL_REPO_FILES are found in the current dir,
44
+ # false otherwise.
45
+ def control_repo_root?(path = Dir.pwd)
46
+ CONTROL_REPO_FILES.any? { |file| PDK::Util::Filesystem.file?(File.join(path, file)) }
47
+ end
48
+ module_function :control_repo_root?
49
+ end
50
+ end
@@ -46,6 +46,17 @@ module PDK
46
46
 
47
47
  template_uri = PDK::Util::TemplateURI.new(opts)
48
48
 
49
+ if template_uri.default? && template_uri.default_ref?
50
+ PDK.logger.info _('Using the default template-url and template-ref.')
51
+ else
52
+ PDK.logger.info _(
53
+ "Using the %{method} template-url and template-ref '%{template_uri}'." % {
54
+ method: opts.key?(:'template-url') ? _('specified') : _('saved'),
55
+ template_uri: template_uri.metadata_format,
56
+ },
57
+ )
58
+ end
59
+
49
60
  begin
50
61
  PDK::Module::TemplateDir.with(template_uri, metadata.data, true) do |templates|
51
62
  templates.render do |file_path, file_content, file_status|
@@ -67,7 +78,7 @@ module PDK
67
78
 
68
79
  # Only update the answers files after metadata has been written.
69
80
  require 'pdk/answer_file'
70
- if template_uri.default?
81
+ if template_uri.default? && template_uri.default_ref?
71
82
  # If the user specifies our default template url via the command
72
83
  # line, remove the saved template-url answer so that the template_uri
73
84
  # resolution can find new default URLs in the future.
@@ -87,8 +98,13 @@ module PDK
87
98
  end
88
99
  end
89
100
 
90
- PDK.logger.info _('Module \'%{name}\' generated at path \'%{path}\', from template \'%{url}\'.') % { name: opts[:module_name], path: target_dir, url: template_uri.bare_uri }
91
- PDK.logger.info(_('In your module directory, add classes with the \'pdk new class\' command.'))
101
+ PDK.logger.info _("Module '%{name}' generated at path '%{path}'.") % {
102
+ name: opts[:module_name],
103
+ path: target_dir,
104
+ }
105
+ PDK.logger.info _(
106
+ "In your module directory, add classes with the 'pdk new class' command.",
107
+ )
92
108
  end
93
109
  rescue Errno::EACCES => e
94
110
  raise PDK::CLI::FatalError, _("Failed to move '%{source}' to '%{target}': %{message}") % {
@@ -16,7 +16,7 @@ module PDK
16
16
  # OBJECT_TYPE constant and implement the {#template_data},
17
17
  # {#target_object_path} and {#target_spec_path} methods.
18
18
  #
19
- # @param module_dir [String] The path to the module directory that the
19
+ # @param module_dir [String] The path to the root of module that the
20
20
  # will contain the object.
21
21
  # @param object_name [String] The name of the object.
22
22
  # @param options [Hash{Symbol => Object}]
@@ -115,6 +115,8 @@ module PDK
115
115
  relative_path = Pathname.new(path).relative_path_from(Pathname.new(module_dir))
116
116
  dest_path = File.join(build_dir, relative_path)
117
117
 
118
+ validate_path_encoding!(relative_path.to_path)
119
+
118
120
  if PDK::Util::Filesystem.directory?(path)
119
121
  PDK::Util::Filesystem.mkdir_p(dest_path, mode: PDK::Util::Filesystem.stat(path).mode)
120
122
  elsif PDK::Util::Filesystem.symlink?(path)
@@ -212,6 +214,27 @@ module PDK
212
214
  ) % { path: path }
213
215
  end
214
216
 
217
+ # Checks if the path contains any non-ASCII characters.
218
+ #
219
+ # Java will throw an error when it encounters a path containing
220
+ # characters that are not supported by the hosts locale. In order to
221
+ # maximise compatibility we limit the paths to contain only ASCII
222
+ # characters, which should be part of any locale character set.
223
+ #
224
+ # @param path [String] the relative path to be added to the tar file.
225
+ #
226
+ # @raise [ArgumentError] if the path contains non-ASCII characters.
227
+ #
228
+ # @return [nil]
229
+ def validate_path_encoding!(path)
230
+ return unless path =~ %r{[^\x00-\x7F]}
231
+
232
+ raise ArgumentError, _(
233
+ "'%{path}' can only include ASCII characters in its path or " \
234
+ 'filename in order to be compatible with a wide range of hosts.',
235
+ ) % { path: path }
236
+ end
237
+
215
238
  # Creates a gzip compressed tarball of the build directory.
216
239
  #
217
240
  # If the destination package already exists, it will be removed before
@@ -3,13 +3,16 @@ require 'pdk'
3
3
  module PDK
4
4
  module Module
5
5
  class Convert
6
- def self.invoke(options)
7
- new(options).run
6
+ def self.invoke(module_dir, options)
7
+ new(module_dir, options).run
8
8
  end
9
9
 
10
+ attr_reader :module_dir
11
+
10
12
  attr_reader :options
11
13
 
12
- def initialize(options = {})
14
+ def initialize(module_dir, options = {})
15
+ @module_dir = module_dir
13
16
  @options = options
14
17
  end
15
18
 
@@ -94,7 +97,7 @@ module PDK
94
97
 
95
98
  test_gens = PDK::Util::PuppetStrings.all_objects.map do |generator, objects|
96
99
  (objects || []).map do |obj|
97
- generator.new(Dir.pwd, obj['name'], spec_only: true)
100
+ generator.new(module_dir, obj['name'], spec_only: true)
98
101
  end
99
102
  end
100
103
 
@@ -114,7 +117,7 @@ module PDK
114
117
  def stage_changes!
115
118
  require 'pdk/util/filesystem'
116
119
 
117
- metadata_path = 'metadata.json'
120
+ metadata_path = File.join(module_dir, 'metadata.json')
118
121
 
119
122
  PDK::Module::TemplateDir.with(template_uri, nil, true) do |templates|
120
123
  new_metadata = update_metadata(metadata_path, templates.metadata)
@@ -128,21 +131,22 @@ module PDK
128
131
  update_manager.add_file(metadata_path, new_metadata.to_json)
129
132
  end
130
133
 
131
- templates.render do |file_path, file_content, file_status|
134
+ templates.render do |relative_file_path, file_content, file_status|
135
+ absolute_file_path = File.join(module_dir, relative_file_path)
132
136
  case file_status
133
137
  when :unmanage
134
- PDK.logger.debug(_("skipping '%{path}'") % { path: file_path })
138
+ PDK.logger.debug(_("skipping '%{path}'") % { path: absolute_file_path })
135
139
  when :delete
136
- update_manager.remove_file(file_path)
140
+ update_manager.remove_file(absolute_file_path)
137
141
  when :init
138
- if convert? && !PDK::Util::Filesystem.exist?(file_path)
139
- update_manager.add_file(file_path, file_content)
142
+ if convert? && !PDK::Util::Filesystem.exist?(absolute_file_path)
143
+ update_manager.add_file(absolute_file_path, file_content)
140
144
  end
141
145
  when :manage
142
- if PDK::Util::Filesystem.exist?(file_path)
143
- update_manager.modify_file(file_path, file_content)
146
+ if PDK::Util::Filesystem.exist?(absolute_file_path)
147
+ update_manager.modify_file(absolute_file_path, file_content)
144
148
  else
145
- update_manager.add_file(file_path, file_content)
149
+ update_manager.add_file(absolute_file_path, file_content)
146
150
  end
147
151
  end
148
152
  end
@@ -51,7 +51,7 @@ module PDK
51
51
  end
52
52
 
53
53
  def module_metadata
54
- @module_metadata ||= PDK::Module::Metadata.from_file('metadata.json')
54
+ @module_metadata ||= PDK::Module::Metadata.from_file(File.join(module_dir, 'metadata.json'))
55
55
  rescue ArgumentError => e
56
56
  raise PDK::CLI::ExitWithError, e.message
57
57
  end
@@ -4,25 +4,42 @@ require 'forwardable'
4
4
  module PDK
5
5
  module Util
6
6
  class Env
7
- class << self
7
+ class WindowsEnv
8
8
  extend Forwardable
9
9
 
10
- def_delegators :env_hash, :[], :key?, :fetch, :select, :reject
10
+ # Note, these delegators may not have case insensitive keys
11
+ def_delegators :env_hash, :fetch, :select, :reject
11
12
 
12
13
  def []=(key, value)
13
- if Gem.win_platform?
14
- PDK::Util::Windows::Process.set_environment_variable(key, value)
15
- else
16
- ENV[key] = value
14
+ PDK::Util::Windows::Process.set_environment_variable(key, value)
15
+ end
16
+
17
+ def key?(key)
18
+ !env_hash.keys.find { |item| key.casecmp(item).zero? }.nil?
19
+ end
20
+
21
+ def [](key)
22
+ env_hash.each do |item, value|
23
+ next unless key.casecmp(item).zero?
24
+ return value
17
25
  end
26
+ nil
18
27
  end
19
28
 
29
+ private
30
+
20
31
  def env_hash
21
- if Gem.win_platform?
22
- PDK::Util::Windows::Process.environment_hash
23
- else
24
- ENV
25
- end
32
+ PDK::Util::Windows::Process.environment_hash
33
+ end
34
+ end
35
+
36
+ class << self
37
+ extend Forwardable
38
+
39
+ def_delegators :implementation, :key?, :[], :[]=, :fetch, :select, :reject
40
+
41
+ def implementation
42
+ @implementation ||= Gem.win_platform? ? WindowsEnv.new : ENV
26
43
  end
27
44
  end
28
45
  end
@@ -115,9 +115,7 @@ module PDK
115
115
  else
116
116
  # This allows the subprocess to find the 'bundler' gem, which isn't
117
117
  # in GEM_HOME for gem installs.
118
- # TODO: There must be a better way to do this than shelling out to
119
- # gem... Perhaps can be replaced with "Gem.path"?
120
- [File.absolute_path(File.join(`gem which bundler`, '..', '..', '..', '..'))]
118
+ [File.absolute_path(File.join(bundler_basedir, '..', '..', '..'))]
121
119
  end
122
120
  end
123
121
 
@@ -128,6 +126,7 @@ module PDK
128
126
  def gem_home
129
127
  require 'pdk/util'
130
128
 
129
+ # TODO: bundle install --path is deprecated
131
130
  # `bundle install --path` ignores all "system" installed gems and
132
131
  # causes unnecessary package installs. `bundle install` (without
133
132
  # --path) installs into GEM_HOME, which by default is non-user
@@ -167,6 +166,10 @@ module PDK
167
166
  def versions
168
167
  self.class.versions
169
168
  end
169
+
170
+ def bundler_basedir
171
+ Gem::Specification.latest_specs.find { |spec| spec.name.eql?('bundler') }.base_dir
172
+ end
170
173
  end
171
174
  end
172
175
  end
@@ -94,6 +94,10 @@ module PDK
94
94
  bare_uri == PDK::Util::TemplateURI.bare_uri(PDK::Util::TemplateURI.default_template_addressable_uri)
95
95
  end
96
96
 
97
+ def default_ref?
98
+ uri_fragment == self.class.default_template_ref(self)
99
+ end
100
+
97
101
  def puppetlabs_template?
98
102
  self.class.packaged_template?(bare_uri) || bare_uri == PDK_TEMPLATE_URL
99
103
  end
@@ -1,4 +1,4 @@
1
1
  module PDK
2
- VERSION = '1.15.0'.freeze
2
+ VERSION = '1.16.0'.freeze
3
3
  TEMPLATE_REF = VERSION
4
4
  end
@@ -1,16 +1,16 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) 2019 Puppet, Inc.
2
+ # Copyright (C) 2020 Puppet, Inc.
3
3
  # This file is distributed under the same license as the puppet development kit package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: puppet development kit v1.14.1-59-gac5bc75\n"
9
+ "Project-Id-Version: puppet development kit v1.15.0-30-g4c79619\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: docs@puppet.com\n"
12
- "POT-Creation-Date: 2019-12-13 13:31+1100\n"
13
- "PO-Revision-Date: 2019-12-13 13:31+1100\n"
12
+ "POT-Creation-Date: 2020-02-05 12:17+1100\n"
13
+ "PO-Revision-Date: 2020-02-05 12:17+1100\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -317,19 +317,19 @@ msgstr ""
317
317
  msgid "%{varname} is not supported by PDK."
318
318
  msgstr ""
319
319
 
320
- #: ../lib/pdk/cli/exec/command.rb:206
320
+ #: ../lib/pdk/cli/exec/command.rb:212
321
321
  msgid "Executing '%{command}'"
322
322
  msgstr ""
323
323
 
324
- #: ../lib/pdk/cli/exec/command.rb:209 ../lib/pdk/cli/exec/interactive_command.rb:78
324
+ #: ../lib/pdk/cli/exec/command.rb:215 ../lib/pdk/cli/exec/interactive_command.rb:78
325
325
  msgid "Command environment:"
326
326
  msgstr ""
327
327
 
328
- #: ../lib/pdk/cli/exec/command.rb:220
328
+ #: ../lib/pdk/cli/exec/command.rb:226
329
329
  msgid "Failed to execute '%{command}': %{message}"
330
330
  msgstr ""
331
331
 
332
- #: ../lib/pdk/cli/exec/command.rb:236
332
+ #: ../lib/pdk/cli/exec/command.rb:242
333
333
  msgid "Execution of '%{command}' complete (duration: %{duration_in_seconds}s; exit code: %{exit_code})"
334
334
  msgstr ""
335
335
 
@@ -415,7 +415,7 @@ msgstr ""
415
415
  msgid "Classes can only be created from inside a valid module directory."
416
416
  msgstr ""
417
417
 
418
- #: ../lib/pdk/cli/new/class.rb:24
418
+ #: ../lib/pdk/cli/new/class.rb:23
419
419
  msgid "'%{name}' is not a valid class name"
420
420
  msgstr ""
421
421
 
@@ -431,7 +431,7 @@ msgstr ""
431
431
  msgid "Defined types can only be created from inside a valid module directory."
432
432
  msgstr ""
433
433
 
434
- #: ../lib/pdk/cli/new/defined_type.rb:22
434
+ #: ../lib/pdk/cli/new/defined_type.rb:21
435
435
  msgid "'%{name}' is not a valid defined type name"
436
436
  msgstr ""
437
437
 
@@ -463,7 +463,7 @@ msgstr ""
463
463
  msgid "[experimental] Create a new ruby provider named <name> using given options"
464
464
  msgstr ""
465
465
 
466
- #: ../lib/pdk/cli/new/provider.rb:19
466
+ #: ../lib/pdk/cli/new/provider.rb:18
467
467
  msgid "'%{name}' is not a valid provider name"
468
468
  msgstr ""
469
469
 
@@ -483,7 +483,7 @@ msgstr ""
483
483
  msgid "Tasks can only be created from inside a valid module directory."
484
484
  msgstr ""
485
485
 
486
- #: ../lib/pdk/cli/new/task.rb:26
486
+ #: ../lib/pdk/cli/new/task.rb:25
487
487
  msgid "'%{name}' is not a valid task name"
488
488
  msgstr ""
489
489
 
@@ -503,15 +503,15 @@ msgstr ""
503
503
  msgid "Tests can only be created from inside a valid module directory."
504
504
  msgstr ""
505
505
 
506
- #: ../lib/pdk/cli/new/test.rb:31
506
+ #: ../lib/pdk/cli/new/test.rb:30
507
507
  msgid "Test type not specified, assuming unit."
508
508
  msgstr ""
509
509
 
510
- #: ../lib/pdk/cli/new/test.rb:46
510
+ #: ../lib/pdk/cli/new/test.rb:45
511
511
  msgid "Unable to find anything called \"%{object}\" to generate unit tests for."
512
512
  msgstr ""
513
513
 
514
- #: ../lib/pdk/cli/new/test.rb:48
514
+ #: ../lib/pdk/cli/new/test.rb:47
515
515
  msgid "PDK does not support generating unit tests for \"%{object_type}\" objects."
516
516
  msgstr ""
517
517
 
@@ -523,7 +523,7 @@ msgstr ""
523
523
  msgid "[experimental] Create a new ruby transport named <name> using given options"
524
524
  msgstr ""
525
525
 
526
- #: ../lib/pdk/cli/new/transport.rb:19
526
+ #: ../lib/pdk/cli/new/transport.rb:18
527
527
  msgid "'%{name}' is not a valid transport name"
528
528
  msgstr ""
529
529
 
@@ -975,145 +975,161 @@ msgstr ""
975
975
  msgid "You do not have permission to write to '%{parent_dir}'"
976
976
  msgstr ""
977
977
 
978
- #: ../lib/pdk/generate/module.rb:90
979
- msgid "Module '%{name}' generated at path '%{path}', from template '%{url}'."
978
+ #: ../lib/pdk/generate/module.rb:50
979
+ msgid "Using the default template-url and template-ref."
980
980
  msgstr ""
981
981
 
982
- #: ../lib/pdk/generate/module.rb:91
982
+ #: ../lib/pdk/generate/module.rb:52
983
+ msgid "Using the %{method} template-url and template-ref '%{template_uri}'."
984
+ msgstr ""
985
+
986
+ #: ../lib/pdk/generate/module.rb:54
987
+ msgid "specified"
988
+ msgstr ""
989
+
990
+ #: ../lib/pdk/generate/module.rb:54
991
+ msgid "saved"
992
+ msgstr ""
993
+
994
+ #: ../lib/pdk/generate/module.rb:101
995
+ msgid "Module '%{name}' generated at path '%{path}'."
996
+ msgstr ""
997
+
998
+ #: ../lib/pdk/generate/module.rb:105
983
999
  msgid "In your module directory, add classes with the 'pdk new class' command."
984
1000
  msgstr ""
985
1001
 
986
- #: ../lib/pdk/generate/module.rb:94
1002
+ #: ../lib/pdk/generate/module.rb:110
987
1003
  msgid "Failed to move '%{source}' to '%{target}': %{message}"
988
1004
  msgstr ""
989
1005
 
990
- #: ../lib/pdk/generate/module.rb:110
1006
+ #: ../lib/pdk/generate/module.rb:126
991
1007
  msgid "Your username is not a valid Forge username. Proceeding with the username %{username}. You can fix this later in metadata.json."
992
1008
  msgstr ""
993
1009
 
994
- #: ../lib/pdk/generate/module.rb:148
1010
+ #: ../lib/pdk/generate/module.rb:164
995
1011
  msgid "Unable to create directory '%{dir}': %{message}"
996
1012
  msgstr ""
997
1013
 
998
- #: ../lib/pdk/generate/module.rb:163
1014
+ #: ../lib/pdk/generate/module.rb:179
999
1015
  msgid "If you have a name for your module, add it here."
1000
1016
  msgstr ""
1001
1017
 
1002
- #: ../lib/pdk/generate/module.rb:164
1018
+ #: ../lib/pdk/generate/module.rb:180
1003
1019
  msgid "This is the name that will be associated with your module, it should be relevant to the modules content."
1004
1020
  msgstr ""
1005
1021
 
1006
- #: ../lib/pdk/generate/module.rb:167
1022
+ #: ../lib/pdk/generate/module.rb:183
1007
1023
  msgid "Module names must begin with a lowercase letter and can only include lowercase letters, numbers, and underscores."
1008
1024
  msgstr ""
1009
1025
 
1010
- #: ../lib/pdk/generate/module.rb:171
1026
+ #: ../lib/pdk/generate/module.rb:187
1011
1027
  msgid "If you have a Puppet Forge username, add it here."
1012
1028
  msgstr ""
1013
1029
 
1014
- #: ../lib/pdk/generate/module.rb:172
1030
+ #: ../lib/pdk/generate/module.rb:188
1015
1031
  msgid "We can use this to upload your module to the Forge when it's complete."
1016
1032
  msgstr ""
1017
1033
 
1018
- #: ../lib/pdk/generate/module.rb:175
1034
+ #: ../lib/pdk/generate/module.rb:191
1019
1035
  msgid "Forge usernames can only contain lowercase letters and numbers"
1020
1036
  msgstr ""
1021
1037
 
1022
- #: ../lib/pdk/generate/module.rb:180
1038
+ #: ../lib/pdk/generate/module.rb:196
1023
1039
  msgid "What version is this module?"
1024
1040
  msgstr ""
1025
1041
 
1026
- #: ../lib/pdk/generate/module.rb:181
1042
+ #: ../lib/pdk/generate/module.rb:197
1027
1043
  msgid "Puppet uses Semantic Versioning (semver.org) to version modules."
1028
1044
  msgstr ""
1029
1045
 
1030
- #: ../lib/pdk/generate/module.rb:184
1046
+ #: ../lib/pdk/generate/module.rb:200
1031
1047
  msgid "Semantic Version numbers must be in the form MAJOR.MINOR.PATCH"
1032
1048
  msgstr ""
1033
1049
 
1034
- #: ../lib/pdk/generate/module.rb:190
1050
+ #: ../lib/pdk/generate/module.rb:206
1035
1051
  msgid "Who wrote this module?"
1036
1052
  msgstr ""
1037
1053
 
1038
- #: ../lib/pdk/generate/module.rb:191
1054
+ #: ../lib/pdk/generate/module.rb:207
1039
1055
  msgid "This is used to credit the module's author."
1040
1056
  msgstr ""
1041
1057
 
1042
- #: ../lib/pdk/generate/module.rb:197
1058
+ #: ../lib/pdk/generate/module.rb:213
1043
1059
  msgid "What license does this module code fall under?"
1044
1060
  msgstr ""
1045
1061
 
1046
- #: ../lib/pdk/generate/module.rb:198
1062
+ #: ../lib/pdk/generate/module.rb:214
1047
1063
  msgid "This should be an identifier from https://spdx.org/licenses/. Common values are \"Apache-2.0\", \"MIT\", or \"proprietary\"."
1048
1064
  msgstr ""
1049
1065
 
1050
- #: ../lib/pdk/generate/module.rb:204
1066
+ #: ../lib/pdk/generate/module.rb:220
1051
1067
  msgid "What operating systems does this module support?"
1052
1068
  msgstr ""
1053
1069
 
1054
- #: ../lib/pdk/generate/module.rb:205
1070
+ #: ../lib/pdk/generate/module.rb:221
1055
1071
  msgid "Use the up and down keys to move between the choices, space to select and enter to continue."
1056
1072
  msgstr ""
1057
1073
 
1058
- #: ../lib/pdk/generate/module.rb:216
1074
+ #: ../lib/pdk/generate/module.rb:232
1059
1075
  msgid "Summarize the purpose of this module in a single sentence."
1060
1076
  msgstr ""
1061
1077
 
1062
- #: ../lib/pdk/generate/module.rb:217
1078
+ #: ../lib/pdk/generate/module.rb:233
1063
1079
  msgid "This helps other Puppet users understand what the module does."
1064
1080
  msgstr ""
1065
1081
 
1066
- #: ../lib/pdk/generate/module.rb:224
1082
+ #: ../lib/pdk/generate/module.rb:240
1067
1083
  msgid "If there is a source code repository for this module, enter the URL here."
1068
1084
  msgstr ""
1069
1085
 
1070
- #: ../lib/pdk/generate/module.rb:225
1086
+ #: ../lib/pdk/generate/module.rb:241
1071
1087
  msgid "Skip this if no repository exists yet. You can update this later in the metadata.json."
1072
1088
  msgstr ""
1073
1089
 
1074
- #: ../lib/pdk/generate/module.rb:232
1090
+ #: ../lib/pdk/generate/module.rb:248
1075
1091
  msgid "If there is a URL where others can learn more about this module, enter it here."
1076
1092
  msgstr ""
1077
1093
 
1078
- #: ../lib/pdk/generate/module.rb:233 ../lib/pdk/generate/module.rb:240
1094
+ #: ../lib/pdk/generate/module.rb:249 ../lib/pdk/generate/module.rb:256
1079
1095
  msgid "Optional. You can update this later in the metadata.json."
1080
1096
  msgstr ""
1081
1097
 
1082
- #: ../lib/pdk/generate/module.rb:239
1098
+ #: ../lib/pdk/generate/module.rb:255
1083
1099
  msgid "If there is a public issue tracker for this module, enter its URL here."
1084
1100
  msgstr ""
1085
1101
 
1086
- #: ../lib/pdk/generate/module.rb:267
1102
+ #: ../lib/pdk/generate/module.rb:283
1087
1103
  msgid ""
1088
1104
  "\n"
1089
1105
  "We need to update the metadata.json file for this module, so we\\'re going to ask you %{count} questions.\n"
1090
1106
  msgstr ""
1091
1107
 
1092
- #: ../lib/pdk/generate/module.rb:274
1108
+ #: ../lib/pdk/generate/module.rb:290
1093
1109
  msgid ""
1094
1110
  "\n"
1095
1111
  "We need to create the metadata.json file for this module, so we\\'re going to ask you %{count} questions.\n"
1096
1112
  msgstr ""
1097
1113
 
1098
- #: ../lib/pdk/generate/module.rb:282
1114
+ #: ../lib/pdk/generate/module.rb:298
1099
1115
  msgid ""
1100
1116
  "If the question is not applicable to this module, accept the default option shown after each question. You can modify any answers at any time by manually updating the metadata.json file.\n"
1101
1117
  "\n"
1102
1118
  msgstr ""
1103
1119
 
1104
- #: ../lib/pdk/generate/module.rb:291
1120
+ #: ../lib/pdk/generate/module.rb:307
1105
1121
  msgid "No answers given, interview cancelled."
1106
1122
  msgstr ""
1107
1123
 
1108
- #: ../lib/pdk/generate/module.rb:317
1124
+ #: ../lib/pdk/generate/module.rb:333
1109
1125
  msgid "Metadata will be generated based on this information, continue?"
1110
1126
  msgstr ""
1111
1127
 
1112
- #: ../lib/pdk/generate/module.rb:319
1128
+ #: ../lib/pdk/generate/module.rb:335
1113
1129
  msgid "Interview cancelled; exiting."
1114
1130
  msgstr ""
1115
1131
 
1116
- #: ../lib/pdk/generate/module.rb:323
1132
+ #: ../lib/pdk/generate/module.rb:339
1117
1133
  msgid "Process cancelled; exiting."
1118
1134
  msgstr ""
1119
1135
 
@@ -1193,64 +1209,68 @@ msgstr ""
1193
1209
  msgid "%{error}: Creating a transport needs some local configuration in your module. Please follow the docs at https://github.com/puppetlabs/puppet-resource_api#getting-started."
1194
1210
  msgstr ""
1195
1211
 
1196
- #: ../lib/pdk/module/build.rb:127
1212
+ #: ../lib/pdk/module/build.rb:129
1197
1213
  msgid "%{message} Rename the file or exclude it from the package by adding it to the .pdkignore file in your module."
1198
1214
  msgstr ""
1199
1215
 
1200
- #: ../lib/pdk/module/build.rb:157
1216
+ #: ../lib/pdk/module/build.rb:159
1201
1217
  msgid "Symlinks in modules are not supported and will not be included in the package. Please investigate symlink %{from} -> %{to}."
1202
1218
  msgstr ""
1203
1219
 
1204
- #: ../lib/pdk/module/build.rb:184
1220
+ #: ../lib/pdk/module/build.rb:186
1205
1221
  msgid "The path '%{path}' is longer than 256 bytes."
1206
1222
  msgstr ""
1207
1223
 
1208
- #: ../lib/pdk/module/build.rb:208
1224
+ #: ../lib/pdk/module/build.rb:210
1209
1225
  msgid "'%{path}' could not be split at a directory separator into two parts, the first having a maximum length of 155 bytes and the second having a maximum length of 100 bytes."
1210
1226
  msgstr ""
1211
1227
 
1212
- #: ../lib/pdk/module/build.rb:243
1228
+ #: ../lib/pdk/module/build.rb:232
1229
+ msgid "'%{path}' can only include ASCII characters in its path or filename in order to be compatible with a wide range of hosts."
1230
+ msgstr ""
1231
+
1232
+ #: ../lib/pdk/module/build.rb:266
1213
1233
  msgid "Updated permissions of packaged '%{entry}' to %{new_mode}"
1214
1234
  msgstr ""
1215
1235
 
1216
- #: ../lib/pdk/module/convert.rb:29 ../lib/pdk/module/update.rb:20
1236
+ #: ../lib/pdk/module/convert.rb:32 ../lib/pdk/module/update.rb:20
1217
1237
  msgid "No changes required."
1218
1238
  msgstr ""
1219
1239
 
1220
- #: ../lib/pdk/module/convert.rb:44
1240
+ #: ../lib/pdk/module/convert.rb:47
1221
1241
  msgid "Module conversion is a potentially destructive action. Ensure that you have committed your module to a version control system or have a backup, and review the changes above before continuing."
1222
1242
  msgstr ""
1223
1243
 
1224
- #: ../lib/pdk/module/convert.rb:49 ../lib/pdk/module/update.rb:32
1244
+ #: ../lib/pdk/module/convert.rb:52 ../lib/pdk/module/update.rb:32
1225
1245
  msgid "Do you want to continue and make these changes to your module?"
1226
1246
  msgstr ""
1227
1247
 
1228
- #: ../lib/pdk/module/convert.rb:134
1248
+ #: ../lib/pdk/module/convert.rb:138
1229
1249
  msgid "skipping '%{path}'"
1230
1250
  msgstr ""
1231
1251
 
1232
- #: ../lib/pdk/module/convert.rb:173
1252
+ #: ../lib/pdk/module/convert.rb:177
1233
1253
  msgid "Unable to update module metadata; %{path} exists but it is not readable."
1234
1254
  msgstr ""
1235
1255
 
1236
- #: ../lib/pdk/module/convert.rb:189
1256
+ #: ../lib/pdk/module/convert.rb:193
1237
1257
  msgid "Unable to update module metadata; %{path} exists but it is not a file."
1238
1258
  msgstr ""
1239
1259
 
1240
- #: ../lib/pdk/module/convert.rb:234 ../lib/pdk/module/convert.rb:239 ../lib/pdk/module/convert.rb:245
1260
+ #: ../lib/pdk/module/convert.rb:238 ../lib/pdk/module/convert.rb:243 ../lib/pdk/module/convert.rb:249
1241
1261
  msgid ""
1242
1262
  "\n"
1243
1263
  "%{banner}"
1244
1264
  msgstr ""
1245
1265
 
1246
- #: ../lib/pdk/module/convert.rb:247
1266
+ #: ../lib/pdk/module/convert.rb:251
1247
1267
  msgid ""
1248
1268
  "\n"
1249
1269
  "%{summary}\n"
1250
1270
  "\n"
1251
1271
  msgstr ""
1252
1272
 
1253
- #: ../lib/pdk/module/convert.rb:256
1273
+ #: ../lib/pdk/module/convert.rb:260
1254
1274
  msgid ""
1255
1275
  "\n"
1256
1276
  "You can find a report of differences in %{path}.\n"
@@ -1749,31 +1769,31 @@ msgstr ""
1749
1769
  msgid "PDK::Util::TemplateURI attempted initialization with a non-uri string: {string}"
1750
1770
  msgstr ""
1751
1771
 
1752
- #: ../lib/pdk/util/template_uri.rb:177
1772
+ #: ../lib/pdk/util/template_uri.rb:181
1753
1773
  msgid "%{scp_uri} appears to be an SCP style URL; it will be converted to an RFC compliant URI: %{rfc_uri}"
1754
1774
  msgstr ""
1755
1775
 
1756
- #: ../lib/pdk/util/template_uri.rb:228
1776
+ #: ../lib/pdk/util/template_uri.rb:232
1757
1777
  msgid "--template-url"
1758
1778
  msgstr ""
1759
1779
 
1760
- #: ../lib/pdk/util/template_uri.rb:229
1780
+ #: ../lib/pdk/util/template_uri.rb:233
1761
1781
  msgid "metadata.json"
1762
1782
  msgstr ""
1763
1783
 
1764
- #: ../lib/pdk/util/template_uri.rb:230
1784
+ #: ../lib/pdk/util/template_uri.rb:234
1765
1785
  msgid "PDK answers"
1766
1786
  msgstr ""
1767
1787
 
1768
- #: ../lib/pdk/util/template_uri.rb:231
1788
+ #: ../lib/pdk/util/template_uri.rb:235
1769
1789
  msgid "default"
1770
1790
  msgstr ""
1771
1791
 
1772
- #: ../lib/pdk/util/template_uri.rb:255
1792
+ #: ../lib/pdk/util/template_uri.rb:259
1773
1793
  msgid "Unable to find a valid module template to use."
1774
1794
  msgstr ""
1775
1795
 
1776
- #: ../lib/pdk/util/template_uri.rb:279
1796
+ #: ../lib/pdk/util/template_uri.rb:283
1777
1797
  msgid "Unable to find a valid template at %{uri}"
1778
1798
  msgstr ""
1779
1799
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-13 00:00:00.000000000 Z
11
+ date: 2020-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -286,6 +286,7 @@ files:
286
286
  - lib/pdk/analytics/client/noop.rb
287
287
  - lib/pdk/analytics/util.rb
288
288
  - lib/pdk/answer_file.rb
289
+ - lib/pdk/bolt.rb
289
290
  - lib/pdk/cli.rb
290
291
  - lib/pdk/cli/build.rb
291
292
  - lib/pdk/cli/bundle.rb
@@ -334,6 +335,7 @@ files:
334
335
  - lib/pdk/config/validator.rb
335
336
  - lib/pdk/config/yaml.rb
336
337
  - lib/pdk/config/yaml_with_schema.rb
338
+ - lib/pdk/control_repo.rb
337
339
  - lib/pdk/generate.rb
338
340
  - lib/pdk/generate/defined_type.rb
339
341
  - lib/pdk/generate/module.rb