pdk 1.13.0 → 1.14.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.
Files changed (82) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +41 -0
  4. data/lib/pdk.rb +0 -13
  5. data/lib/pdk/analytics.rb +18 -2
  6. data/lib/pdk/analytics/client/google_analytics.rb +3 -0
  7. data/lib/pdk/answer_file.rb +4 -1
  8. data/lib/pdk/cli.rb +7 -2
  9. data/lib/pdk/cli/build.rb +2 -2
  10. data/lib/pdk/cli/bundle.rb +7 -1
  11. data/lib/pdk/cli/console.rb +148 -0
  12. data/lib/pdk/cli/convert.rb +2 -2
  13. data/lib/pdk/cli/exec.rb +14 -14
  14. data/lib/pdk/cli/exec/command.rb +16 -11
  15. data/lib/pdk/cli/exec/interactive_command.rb +4 -0
  16. data/lib/pdk/cli/exec_group.rb +5 -5
  17. data/lib/pdk/cli/module/build.rb +0 -2
  18. data/lib/pdk/cli/module/generate.rb +1 -2
  19. data/lib/pdk/cli/new.rb +1 -1
  20. data/lib/pdk/cli/new/defined_type.rb +2 -0
  21. data/lib/pdk/cli/new/provider.rb +2 -0
  22. data/lib/pdk/cli/new/task.rb +2 -0
  23. data/lib/pdk/cli/new/{unit_test.rb → test.rb} +16 -12
  24. data/lib/pdk/cli/new/transport.rb +2 -0
  25. data/lib/pdk/cli/test/unit.rb +5 -3
  26. data/lib/pdk/cli/update.rb +2 -3
  27. data/lib/pdk/cli/util.rb +45 -14
  28. data/lib/pdk/cli/util/spinner.rb +2 -2
  29. data/lib/pdk/cli/validate.rb +6 -2
  30. data/lib/pdk/config.rb +20 -8
  31. data/lib/pdk/config/analytics_schema.json +26 -0
  32. data/lib/pdk/config/json.rb +14 -3
  33. data/lib/pdk/config/json_schema_namespace.rb +143 -0
  34. data/lib/pdk/config/json_schema_setting.rb +53 -0
  35. data/lib/pdk/config/json_with_schema.rb +50 -0
  36. data/lib/pdk/config/namespace.rb +84 -76
  37. data/lib/pdk/config/setting.rb +132 -0
  38. data/lib/pdk/config/yaml.rb +15 -3
  39. data/lib/pdk/config/yaml_with_schema.rb +59 -0
  40. data/lib/pdk/generate.rb +0 -2
  41. data/lib/pdk/generate/module.rb +29 -16
  42. data/lib/pdk/generate/puppet_object.rb +31 -28
  43. data/lib/pdk/module.rb +2 -2
  44. data/lib/pdk/module/build.rb +21 -8
  45. data/lib/pdk/module/convert.rb +64 -7
  46. data/lib/pdk/module/metadata.rb +5 -1
  47. data/lib/pdk/module/templatedir.rb +24 -7
  48. data/lib/pdk/module/update.rb +5 -1
  49. data/lib/pdk/module/update_manager.rb +21 -13
  50. data/lib/pdk/report.rb +4 -3
  51. data/lib/pdk/report/event.rb +5 -3
  52. data/lib/pdk/tests/unit.rb +36 -7
  53. data/lib/pdk/util.rb +20 -8
  54. data/lib/pdk/util/bundler.rb +14 -6
  55. data/lib/pdk/util/filesystem.rb +5 -0
  56. data/lib/pdk/util/git.rb +6 -0
  57. data/lib/pdk/util/puppet_strings.rb +24 -2
  58. data/lib/pdk/util/puppet_version.rb +25 -10
  59. data/lib/pdk/util/ruby_version.rb +13 -1
  60. data/lib/pdk/util/template_uri.rb +23 -2
  61. data/lib/pdk/util/vendored_file.rb +28 -24
  62. data/lib/pdk/util/version.rb +5 -5
  63. data/lib/pdk/validate/base_validator.rb +5 -4
  64. data/lib/pdk/validate/metadata/metadata_json_lint.rb +0 -4
  65. data/lib/pdk/validate/metadata/metadata_syntax.rb +5 -3
  66. data/lib/pdk/validate/metadata_validator.rb +0 -2
  67. data/lib/pdk/validate/puppet/puppet_epp.rb +4 -4
  68. data/lib/pdk/validate/puppet/puppet_lint.rb +0 -3
  69. data/lib/pdk/validate/puppet/puppet_syntax.rb +4 -4
  70. data/lib/pdk/validate/puppet_validator.rb +0 -2
  71. data/lib/pdk/validate/ruby/rubocop.rb +0 -5
  72. data/lib/pdk/validate/ruby_validator.rb +0 -2
  73. data/lib/pdk/validate/tasks/metadata_lint.rb +9 -5
  74. data/lib/pdk/validate/tasks/name.rb +4 -2
  75. data/lib/pdk/validate/tasks_validator.rb +0 -2
  76. data/lib/pdk/validate/yaml/syntax.rb +4 -4
  77. data/lib/pdk/validate/yaml_validator.rb +0 -2
  78. data/lib/pdk/version.rb +1 -1
  79. data/locales/pdk.pot +351 -311
  80. metadata +11 -7
  81. data/lib/pdk/config/validator.rb +0 -31
  82. data/lib/pdk/config/value.rb +0 -94
@@ -1,14 +1,3 @@
1
- require 'bundler'
2
- require 'childprocess'
3
- require 'English'
4
- require 'tempfile'
5
- require 'tty-which'
6
-
7
- require 'pdk/util'
8
- require 'pdk/util/git'
9
- require 'pdk/util/ruby_version'
10
- require 'pdk/cli/util/spinner'
11
-
12
1
  module PDK
13
2
  module CLI
14
3
  module Exec
@@ -20,6 +9,9 @@ module PDK
20
9
  attr_writer :exec_group
21
10
 
22
11
  def initialize(*argv)
12
+ require 'childprocess'
13
+ require 'tempfile'
14
+
23
15
  @argv = argv
24
16
 
25
17
  @process = ChildProcess.build(*@argv)
@@ -50,6 +42,8 @@ module PDK
50
42
  end
51
43
 
52
44
  def register_spinner(spinner, opts = {})
45
+ require 'pdk/cli/util'
46
+
53
47
  return unless PDK::CLI::Util.interactive?
54
48
  @success_message = opts.delete(:success)
55
49
  @failure_message = opts.delete(:failure)
@@ -58,10 +52,14 @@ module PDK
58
52
  end
59
53
 
60
54
  def add_spinner(message, opts = {})
55
+ require 'pdk/cli/util'
56
+
61
57
  return unless PDK::CLI::Util.interactive?
62
58
  @success_message = opts.delete(:success)
63
59
  @failure_message = opts.delete(:failure)
64
60
 
61
+ require 'pdk/cli/util/spinner'
62
+
65
63
  @spinner = TTY::Spinner.new("[:spinner] #{message}", opts.merge(PDK::CLI::Util.spinner_opts_for_platform))
66
64
  end
67
65
 
@@ -77,6 +75,7 @@ module PDK
77
75
  resolved_env_for_command.each { |k, v| @process.environment[k] = v }
78
76
 
79
77
  if [:module, :pwd].include?(context)
78
+ require 'pdk/util'
80
79
  mod_root = PDK::Util.module_root
81
80
 
82
81
  unless mod_root
@@ -155,6 +154,10 @@ module PDK
155
154
  resolved_env['BUNDLE_IGNORE_CONFIG'] = '1'
156
155
 
157
156
  if [:module, :pwd].include?(context)
157
+ require 'pdk/util'
158
+ require 'pdk/util/git'
159
+ require 'pdk/util/ruby_version'
160
+
158
161
  resolved_env['GEM_HOME'] = PDK::Util::RubyVersion.gem_home
159
162
  resolved_env['GEM_PATH'] = PDK::Util::RubyVersion.gem_path
160
163
 
@@ -186,6 +189,8 @@ module PDK
186
189
  end
187
190
 
188
191
  def run_process_in_clean_env!
192
+ require 'bundler'
193
+
189
194
  ::Bundler.with_clean_env do
190
195
  run_process!
191
196
  end
@@ -35,6 +35,8 @@ module PDK
35
35
  end
36
36
 
37
37
  def execute!
38
+ require 'pdk/util'
39
+
38
40
  @resolved_env = resolved_env_for_command
39
41
 
40
42
  if [:module, :pwd].include?(context)
@@ -98,6 +100,8 @@ module PDK
98
100
  end
99
101
 
100
102
  def child_status
103
+ require 'English'
104
+
101
105
  $CHILD_STATUS
102
106
  end
103
107
 
@@ -1,15 +1,13 @@
1
- require 'tty-which'
2
-
3
- require 'pdk/util'
4
- require 'pdk/cli/util/spinner'
5
-
6
1
  module PDK
7
2
  module CLI
8
3
  class ExecGroup
9
4
  def initialize(message, opts = {})
5
+ require 'pdk/cli/util'
10
6
  @options = opts.merge(PDK::CLI::Util.spinner_opts_for_platform)
11
7
 
12
8
  if PDK::CLI::Util.interactive?
9
+ require 'pdk/cli/util/spinner'
10
+
13
11
  @spinner = if parallel?
14
12
  TTY::Spinner::Multi.new("[:spinner] #{message}", @options)
15
13
  else
@@ -41,6 +39,8 @@ module PDK
41
39
  end
42
40
 
43
41
  def add_spinner(message, opts = {})
42
+ require 'pdk/cli/util'
43
+
44
44
  return unless PDK::CLI::Util.interactive?
45
45
  @spinner.register("[:spinner] #{message}", @options.merge(opts).merge(PDK::CLI::Util.spinner_opts_for_platform))
46
46
  end
@@ -1,5 +1,3 @@
1
- require 'tty-prompt'
2
-
3
1
  module PDK::CLI
4
2
  @module_build_cmd = @module_cmd.define_command do
5
3
  name 'build'
@@ -1,5 +1,3 @@
1
- require 'tty-prompt'
2
-
3
1
  module PDK::CLI
4
2
  @module_generate_cmd = @module_cmd.define_command do
5
3
  name 'generate'
@@ -12,6 +10,7 @@ module PDK::CLI
12
10
 
13
11
  run do |opts, args, _cmd|
14
12
  require 'pdk/generate/module'
13
+ require 'tty-prompt'
15
14
 
16
15
  module_name = args[0]
17
16
 
@@ -15,5 +15,5 @@ require 'pdk/cli/new/defined_type'
15
15
  require 'pdk/cli/new/module'
16
16
  require 'pdk/cli/new/provider'
17
17
  require 'pdk/cli/new/task'
18
+ require 'pdk/cli/new/test'
18
19
  require 'pdk/cli/new/transport'
19
- require 'pdk/cli/new/unit_test'
@@ -24,6 +24,8 @@ module PDK::CLI
24
24
 
25
25
  PDK::CLI::Util.analytics_screen_view('new_defined_type', opts)
26
26
 
27
+ require 'pdk/generate/defined_type'
28
+
27
29
  PDK::Generate::DefinedType.new(module_dir, defined_type_name, opts).run
28
30
  end
29
31
  end
@@ -21,6 +21,8 @@ module PDK::CLI
21
21
 
22
22
  PDK::CLI::Util.analytics_screen_view('new_provider', opts)
23
23
 
24
+ require 'pdk/generate/provider'
25
+
24
26
  PDK::Generate::Provider.new(module_dir, provider_name, opts).run
25
27
  end
26
28
  end
@@ -7,6 +7,8 @@ module PDK::CLI
7
7
  option nil, :description, _('A short description of the purpose of the task'), argument: :required
8
8
 
9
9
  run do |opts, args, _cmd|
10
+ require 'pdk/generate/task'
11
+
10
12
  PDK::CLI::Util.ensure_in_module!(
11
13
  message: _('Tasks can only be created from inside a valid module directory.'),
12
14
  log_level: :info,
@@ -1,22 +1,19 @@
1
1
  module PDK::CLI
2
2
  @new_define_cmd = @new_cmd.define_command do
3
- name 'unit_test'
4
- usage _('unit_test [options] <name>')
5
- summary _('(Experimental) Create a new unit test for the object named <name>')
6
- description _(<<-EOF
7
- Generate a new rspec-puppet unit test for an existing class or defined type.
8
-
9
- Please note, this is an experimental feature; the functionality and UX is
10
- subject to change in future releases.
11
- EOF
12
- )
3
+ name 'test'
4
+ usage _('test [options] <name>')
5
+ summary _('Create a new test for the object named <name>')
6
+ flag :u, :unit, _('Create a new unit test.')
13
7
  PDK::CLI.puppet_version_options(self)
14
8
  PDK::CLI.puppet_dev_option(self)
15
9
 
16
10
  run do |opts, args, _cmd|
11
+ require 'pdk/util/puppet_strings'
12
+ require 'pdk/util/bundler'
13
+
17
14
  PDK::CLI::Util.validate_puppet_version_opts(opts)
18
15
  PDK::CLI::Util.ensure_in_module!(
19
- message: _('Unit tests can only be created from inside a valid module directory.'),
16
+ message: _('Tests can only be created from inside a valid module directory.'),
20
17
  log_level: :info,
21
18
  )
22
19
 
@@ -28,6 +25,13 @@ EOF
28
25
  exit 1
29
26
  end
30
27
 
28
+ unless opts[:unit]
29
+ # At a future time, we'll replace this conditional with an interactive
30
+ # question to choose the test type.
31
+ PDK.logger.info _('Test type not specified, assuming unit.')
32
+ opts[:unit] = true
33
+ end
34
+
31
35
  puppet_env = PDK::CLI::Util.puppet_from_opts_or_env(opts)
32
36
  PDK::Util::PuppetVersion.fetch_puppet_dev if opts[:'puppet-dev']
33
37
  PDK::Util::RubyVersion.use(puppet_env[:ruby_version])
@@ -36,7 +40,7 @@ EOF
36
40
  begin
37
41
  generator, obj = PDK::Util::PuppetStrings.find_object(object_name)
38
42
 
39
- PDK::CLI::Util.analytics_screen_view('new_unit_test', opts)
43
+ PDK::CLI::Util.analytics_screen_view('new_test', opts)
40
44
 
41
45
  generator.new(module_dir, obj['name'], opts.merge(spec_only: true)).run
42
46
  rescue PDK::Util::PuppetStrings::NoObjectError
@@ -19,6 +19,8 @@ module PDK::CLI
19
19
  raise PDK::CLI::ExitWithError, _("'%{name}' is not a valid transport name") % { name: transport_name }
20
20
  end
21
21
 
22
+ require 'pdk/generate/transport'
23
+
22
24
  PDK::Generate::Transport.new(module_dir, transport_name, opts).run
23
25
  end
24
26
  end
@@ -1,6 +1,3 @@
1
- require 'pdk/cli/util/option_validator'
2
- require 'pdk/report'
3
-
4
1
  module PDK::CLI
5
2
  @test_unit_cmd = @test_cmd.define_command do
6
3
  name 'unit'
@@ -15,6 +12,7 @@ module PDK::CLI
15
12
  flag :c, 'clean-fixtures', _('Clean up downloaded fixtures after the test run.')
16
13
 
17
14
  option nil, :tests, _('Specify a comma-separated list of unit test files to run.'), argument: :required, default: '' do |values|
15
+ require 'pdk/cli/util/option_validator'
18
16
  PDK::CLI::Util::OptionValidator.comma_separated_list?(values)
19
17
  end
20
18
 
@@ -23,6 +21,8 @@ module PDK::CLI
23
21
 
24
22
  run do |opts, _args, _cmd|
25
23
  require 'pdk/tests/unit'
24
+ require 'pdk/report'
25
+ require 'pdk/util/bundler'
26
26
 
27
27
  PDK::CLI::Util.validate_puppet_version_opts(opts)
28
28
 
@@ -70,8 +70,10 @@ module PDK::CLI
70
70
 
71
71
  report = PDK::Report.new
72
72
  report_formats = if opts[:format]
73
+ opts[:interactive] = false
73
74
  PDK::CLI::Util::OptionNormalizer.report_formats(opts[:format])
74
75
  else
76
+ opts[:interactive] = true
75
77
  [{
76
78
  method: PDK::Report.default_format,
77
79
  target: PDK::Report.default_target,
@@ -1,6 +1,3 @@
1
- require 'pdk/cli/util'
2
- require 'pdk/util'
3
-
4
1
  module PDK::CLI
5
2
  @update_cmd = @base_cmd.define_command do
6
3
  name 'update'
@@ -13,6 +10,8 @@ module PDK::CLI
13
10
  PDK::CLI.template_ref_option(self)
14
11
 
15
12
  run do |opts, _args, _cmd|
13
+ require 'pdk/cli/util'
14
+ require 'pdk/util'
16
15
  require 'pdk/module/update'
17
16
 
18
17
  PDK::CLI::Util.ensure_in_module!(
@@ -69,6 +69,8 @@ module PDK
69
69
  module_function :ci_environment?
70
70
 
71
71
  def interactive?
72
+ require 'pdk/logger'
73
+
72
74
  return false if PDK.logger.debug?
73
75
  return !ENV['PDK_FRONTEND'].casecmp('noninteractive').zero? if ENV['PDK_FRONTEND']
74
76
  return false if ci_environment?
@@ -103,10 +105,31 @@ module PDK
103
105
  end
104
106
  module_function :module_version_check
105
107
 
106
- def puppet_from_opts_or_env(opts)
107
- use_puppet_dev = (opts || {})[:'puppet-dev'] || ENV['PDK_PUPPET_DEV']
108
- desired_puppet_version = (opts || {})[:'puppet-version'] || ENV['PDK_PUPPET_VERSION']
109
- desired_pe_version = (opts || {})[:'pe-version'] || ENV['PDK_PE_VERSION']
108
+ def check_for_deprecated_puppet(version)
109
+ return unless version.is_a?(Gem::Version)
110
+
111
+ deprecated_below = Gem::Version.new('5.0.0')
112
+ return unless version < deprecated_below
113
+
114
+ deprecated_msg = _(
115
+ 'Support for Puppet versions older than %{version} is ' \
116
+ 'deprecated and will be removed in a future version of PDK.',
117
+ ) % { version: deprecated_below.to_s }
118
+ PDK.logger.warn(deprecated_msg)
119
+ end
120
+ module_function :check_for_deprecated_puppet
121
+
122
+ # @param opts [Hash] - the pdk options ot use, defaults to empty hash
123
+ # @option opts [String] :'puppet-dev' Use the puppet development version, default to PDK_PUPPET_DEV env
124
+ # @option opts [String] :'puppet-version' Puppet version to use, default to PDK_PUPPET_VERSION env
125
+ # @option opts [String] :'pe-version' PE Puppet version to use, default to PDK_PE_VERSION env
126
+ # @param logging_disabled [Boolean] - disable logging of PDK info
127
+ # @return [Hash] - return hash of { gemset: <>, ruby_version: 2.x.x }
128
+ def puppet_from_opts_or_env(opts, logging_disabled = false)
129
+ opts ||= {}
130
+ use_puppet_dev = opts.fetch(:'puppet-dev', ENV['PDK_PUPPET_DEV'])
131
+ desired_puppet_version = opts.fetch(:'puppet-version', ENV['PDK_PUPPET_VERSION'])
132
+ desired_pe_version = opts.fetch(:'pe-version', ENV['PDK_PE_VERSION'])
110
133
 
111
134
  begin
112
135
  puppet_env =
@@ -124,20 +147,26 @@ module PDK
124
147
  end
125
148
 
126
149
  # Notify user of what Ruby version will be used.
127
- PDK.logger.info(_('Using Ruby %{version}') % {
128
- version: puppet_env[:ruby_version],
129
- })
150
+ unless logging_disabled
151
+ PDK.logger.info(_('Using Ruby %{version}') % {
152
+ version: puppet_env[:ruby_version],
153
+ })
154
+ end
155
+
156
+ check_for_deprecated_puppet(puppet_env[:gem_version])
130
157
 
131
158
  gemset = { puppet: puppet_env[:gem_version].to_s }
132
159
 
133
160
  # Notify user of what gems are being activated.
134
- gemset.each do |gem, version|
135
- next if version.nil?
136
-
137
- PDK.logger.info(_('Using %{gem} %{version}') % {
138
- gem: gem.to_s.capitalize,
139
- version: version,
140
- })
161
+ unless logging_disabled
162
+ gemset.each do |gem, version|
163
+ next if version.nil?
164
+
165
+ PDK.logger.info(_('Using %{gem} %{version}') % {
166
+ gem: gem.to_s.capitalize,
167
+ version: version,
168
+ })
169
+ end
141
170
  end
142
171
 
143
172
  {
@@ -221,6 +250,8 @@ module PDK
221
250
  module_function :validate_template_opts
222
251
 
223
252
  def analytics_screen_view(screen_name, opts = {})
253
+ require 'pdk/analytics'
254
+
224
255
  dimensions = {
225
256
  ruby_version: RUBY_VERSION,
226
257
  }
@@ -1,12 +1,12 @@
1
1
  require 'tty-spinner'
2
2
 
3
- require 'pdk/cli/util'
4
-
5
3
  # Replace the built-in tty check in tty-spinner with our own implementation
6
4
  # that allows us to mock the behaviour during acceptance tests.
7
5
  module TTY
8
6
  class Spinner
9
7
  def tty?
8
+ require 'pdk/cli/util'
9
+
10
10
  PDK::CLI::Util.interactive?
11
11
  end
12
12
  end
@@ -1,5 +1,3 @@
1
- require 'pdk/util/bundler'
2
-
3
1
  module PDK::CLI
4
2
  @validate_cmd = @base_cmd.define_command do
5
3
  name 'validate'
@@ -26,6 +24,8 @@ module PDK::CLI
26
24
  exit 0
27
25
  end
28
26
 
27
+ require 'pdk/validate'
28
+
29
29
  validator_names = PDK::Validate.validators.map { |v| v.name }
30
30
  validators = PDK::Validate.validators
31
31
  targets = []
@@ -101,10 +101,14 @@ module PDK::CLI
101
101
 
102
102
  options.merge!(puppet_env[:gemset])
103
103
 
104
+ require 'pdk/util/bundler'
105
+
104
106
  PDK::Util::Bundler.ensure_bundle!(puppet_env[:gemset])
105
107
 
106
108
  exit_code = 0
107
109
  if opts[:parallel]
110
+ require 'pdk/cli/exec_group'
111
+
108
112
  exec_group = PDK::CLI::ExecGroup.new(_('Validating module using %{num_of_threads} threads' % { num_of_threads: validators.count }), opts)
109
113
 
110
114
  validators.each do |validator|
@@ -1,9 +1,9 @@
1
1
  require 'pdk/config/errors'
2
- require 'pdk/config/json'
3
2
  require 'pdk/config/namespace'
4
- require 'pdk/config/validator'
5
- require 'pdk/config/value'
3
+ require 'pdk/config/setting'
6
4
  require 'pdk/config/yaml'
5
+ require 'pdk/config/yaml_with_schema'
6
+ require 'pdk/config/json'
7
7
 
8
8
  module PDK
9
9
  def self.config
@@ -12,17 +12,16 @@ module PDK
12
12
 
13
13
  class Config
14
14
  def user
15
+ require 'pdk/answer_file'
15
16
  @user ||= PDK::Config::JSON.new('user', file: PDK::Config.user_config_path) do
16
17
  mount :module_defaults, PDK::Config::JSON.new(file: PDK.answers.answer_file_path)
17
18
 
18
- mount :analytics, PDK::Config::YAML.new(file: PDK::Config.analytics_config_path, persistent_defaults: true) do
19
- value :disabled do
20
- validate PDK::Config::Validator.boolean
19
+ mount :analytics, PDK::Config::YAMLWithSchema.new(file: PDK::Config.analytics_config_path, persistent_defaults: true, schema_file: PDK::Config.json_schema('analytics')) do
20
+ setting :disabled do
21
21
  default_to { PDK::Config.bolt_analytics_config.fetch('disabled', true) }
22
22
  end
23
23
 
24
- value 'user-id' do
25
- validate PDK::Config::Validator.uuid
24
+ setting 'user-id' do
26
25
  default_to do
27
26
  require 'securerandom'
28
27
 
@@ -60,11 +59,22 @@ module PDK
60
59
  File.join(PDK::Util.configdir, 'user_config.json')
61
60
  end
62
61
 
62
+ def self.json_schemas_path
63
+ File.join(__dir__, 'config')
64
+ end
65
+
66
+ # return nil if not exist
67
+ def self.json_schema(name)
68
+ File.join(json_schemas_path, name + '_schema.json')
69
+ end
70
+
63
71
  def self.analytics_config_exist?
64
72
  PDK::Util::Filesystem.file?(analytics_config_path)
65
73
  end
66
74
 
67
75
  def self.analytics_config_interview!
76
+ require 'pdk/cli/util'
77
+
68
78
  return unless PDK::CLI::Util.interactive?
69
79
 
70
80
  pre_message = _(
@@ -90,6 +100,8 @@ module PDK
90
100
  },
91
101
  ]
92
102
 
103
+ require 'pdk/cli/util/interview'
104
+
93
105
  PDK.logger.info(text: pre_message, wrap: true)
94
106
  prompt = TTY::Prompt.new(help_color: :cyan)
95
107
  interview = PDK::CLI::Util::Interview.new(prompt)