idlc-sdk-pfm 1.0.0.pre.2

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 (101) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/.yardopts +3 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +37 -0
  9. data/Rakefile +6 -0
  10. data/bin/pfm +8 -0
  11. data/docs/GettingStarted.md +299 -0
  12. data/idlc-sdk-pfm.gemspec +44 -0
  13. data/lib/idlc-sdk-pfm/builtin_commands.rb +11 -0
  14. data/lib/idlc-sdk-pfm/cli.rb +150 -0
  15. data/lib/idlc-sdk-pfm/command/apply.rb +71 -0
  16. data/lib/idlc-sdk-pfm/command/base.rb +195 -0
  17. data/lib/idlc-sdk-pfm/command/build.rb +120 -0
  18. data/lib/idlc-sdk-pfm/command/configure.rb +41 -0
  19. data/lib/idlc-sdk-pfm/command/destroy.rb +61 -0
  20. data/lib/idlc-sdk-pfm/command/exec.rb +24 -0
  21. data/lib/idlc-sdk-pfm/command/format.rb +64 -0
  22. data/lib/idlc-sdk-pfm/command/generate.rb +83 -0
  23. data/lib/idlc-sdk-pfm/command/generator_commands/base.rb +50 -0
  24. data/lib/idlc-sdk-pfm/command/generator_commands/server_build.rb +58 -0
  25. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/Berksfile +3 -0
  26. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml +21 -0
  27. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/README.md +146 -0
  28. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +8 -0
  29. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/chefignore +107 -0
  30. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -0
  31. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -0
  32. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/delivery-config.json +12 -0
  33. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/delivery-project.toml +36 -0
  34. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/gitignore +21 -0
  35. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/README.md +24 -0
  36. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -0
  37. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -0
  38. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +6 -0
  39. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -0
  40. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/data_bags/README.md +56 -0
  41. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +4 -0
  42. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -0
  43. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/environments/README.md +9 -0
  44. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/environments/example.json +13 -0
  45. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/policies/README.md +24 -0
  46. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/roles/README.md +9 -0
  47. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/roles/example.json +13 -0
  48. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/spec_helper.rb +2 -0
  49. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/spec_helper_policyfile.rb +2 -0
  50. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/metadata.rb +7 -0
  51. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/app.rb +89 -0
  52. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/attribute.rb +12 -0
  53. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/build_cookbook.rb +182 -0
  54. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/cookbook.rb +144 -0
  55. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/cookbook_file.rb +24 -0
  56. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/lwrp.rb +23 -0
  57. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/policyfile.rb +8 -0
  58. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/recipe.rb +51 -0
  59. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/repo.rb +67 -0
  60. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/template.rb +32 -0
  61. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -0
  62. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.apachev2.erb +201 -0
  63. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -0
  64. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -0
  65. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -0
  66. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -0
  67. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/README.md.erb +4 -0
  68. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/attribute.rb.erb +0 -0
  69. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb +7 -0
  70. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +10 -0
  71. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +8 -0
  72. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/cookbook_file.erb +0 -0
  73. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +18 -0
  74. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/kitchen.yml.erb +26 -0
  75. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +33 -0
  76. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/metadata.rb.erb +20 -0
  77. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/provider.rb.erb +0 -0
  78. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/recipe.rb.erb +5 -0
  79. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/recipe_spec.rb.erb +22 -0
  80. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/repo/gitignore.erb +128 -0
  81. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/resource.rb.erb +0 -0
  82. data/lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/template.erb +0 -0
  83. data/lib/idlc-sdk-pfm/command/generator_commands.rb +34 -0
  84. data/lib/idlc-sdk-pfm/command/plan.rb +80 -0
  85. data/lib/idlc-sdk-pfm/command/templates/app/files/config/client.rb.template +9 -0
  86. data/lib/idlc-sdk-pfm/command/templates/app/files/config/init.ps1.userdata +16 -0
  87. data/lib/idlc-sdk-pfm/command/templates/base/files/config/client.rb.template +6 -0
  88. data/lib/idlc-sdk-pfm/command/templates/base/files/config/init.ps1.userdata +219 -0
  89. data/lib/idlc-sdk-pfm/command/validate.rb +85 -0
  90. data/lib/idlc-sdk-pfm/command/validator_commands/base.rb +65 -0
  91. data/lib/idlc-sdk-pfm/command/validator_commands/infrastructure.rb +46 -0
  92. data/lib/idlc-sdk-pfm/command/validator_commands/server_build.rb +135 -0
  93. data/lib/idlc-sdk-pfm/command/validator_commands.rb +32 -0
  94. data/lib/idlc-sdk-pfm/commands_map.rb +61 -0
  95. data/lib/idlc-sdk-pfm/generator.rb +52 -0
  96. data/lib/idlc-sdk-pfm/helpers.rb +49 -0
  97. data/lib/idlc-sdk-pfm/settings.rb +205 -0
  98. data/lib/idlc-sdk-pfm/validator.rb +52 -0
  99. data/lib/idlc-sdk-pfm/version.rb +3 -0
  100. data/lib/idlc-sdk-pfm.rb +24 -0
  101. metadata +342 -0
@@ -0,0 +1,49 @@
1
+ module Pfm
2
+ # Module of common functions that are used frequently in every namespace
3
+ module Helpers
4
+ module_function
5
+
6
+ # Runs given commands using mixlib-shellout
7
+ #
8
+ # @param command_args [String] the system command to run
9
+ def system_command(*command_args)
10
+ cmd = Mixlib::ShellOut.new(*command_args)
11
+ cmd.run_command
12
+ err(cmd.stderr)
13
+ msg(cmd.stdout)
14
+ cmd
15
+ end
16
+
17
+ # Print the given string to stderr
18
+ #
19
+ # @param message [String] the string to print
20
+ def err(message)
21
+ stderr.print("#{message}\n")
22
+ end
23
+
24
+ # Print the given string to stdout
25
+ #
26
+ # @param message [String] the string to print
27
+ def msg(message)
28
+ stdout.print("#{message}\n")
29
+ end
30
+
31
+ # Only prints the given string to stdout when the environment variable
32
+ # DEBUG = true
33
+ #
34
+ # @param message [String] the string to print
35
+ def debug(message)
36
+ stdout.print("#{message}\n") if ENV['DEBUG']
37
+ end
38
+
39
+ private
40
+
41
+ def stdout
42
+ $stdout
43
+ end
44
+
45
+ def stderr
46
+ $stderr
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,205 @@
1
+ module Pfm
2
+ # == +PFM+ Settings
3
+ # Top level settings defined and loaded here. This class loads the user config file
4
+ # located at +.pfm/config+
5
+ #
6
+ # +AWS_REGION+ <em>default -> 'us-east-1'</em>
7
+ #
8
+ # * The AWS region to work in. This will eventually become the AWS_REGION environment variable and can be used with other AWS API operations.
9
+ #
10
+ # +RUBOCOP_RULES_FILE+ <em>default -> '.rubocop.yml'</em>
11
+ #
12
+ # * Set the path to the global +.rubocop.yml+ rules file. This file will be used for all server builds when running syntax checks.
13
+ #
14
+ # +FOODCRITIC_RULES_FILE+ <em>default -> '.foodcritic'</em>
15
+ #
16
+ # * Set the path to the global +.foodcritic+ rules file. This file will be used for all server builds when running semantics checks.
17
+ #
18
+ # +BUILD_BASE_DIR+ <em>default -> 'builds'</em>
19
+ #
20
+ # * Set the root path to the builds directory. This should be where top level server builds are located. Ex:
21
+ # .
22
+ # ├── builds
23
+ # │ ├── app-axpdb
24
+ # │ └── app-axpwa
25
+ #
26
+ # +INF_BASE_DIR+ <em>default -> 'inf'</em>
27
+ #
28
+ # * Set the path to the top level infrastructure directory. Ex:
29
+ # .
30
+ # ├── inf
31
+ # │ ├── env
32
+ # │ ├── tasks
33
+ # │ └── tf
34
+ #
35
+ # +PUBLISH_BUCKET+ <em>default -> ''</em>
36
+ #
37
+ # * The top level bucket where deployment packages are stored in S3.
38
+ #
39
+ # +PUBLISH_PREFIX+ <em>default -> ''</em>
40
+ #
41
+ # * The prefix to the deployment package storage location. Ex:
42
+ # +s3://PUBLISH_BUCKET/PUBLISH_PREFIX/package.name+
43
+ #
44
+ # +PACKER_VERSION+ <em>default -> 'default from packer/binary'
45
+ #
46
+ # * The version of Hashicorp Packer to use for builds
47
+ #
48
+ # +TERRAFORM_VERSION+ <em>default -> 'default from terraform/binary'
49
+ #
50
+ # * The version of Hashicorp Terraform to use for deployments
51
+ #
52
+ # Note that if you change these settings from the default, be sure you commit
53
+ # the +.pfm/config+ file.
54
+ #
55
+ # == Example Configuration File
56
+ # An example +.pfm/config+ file might look like this:
57
+ # ---
58
+ # AWS_REGION: 'us-east-1'
59
+ # RUBOCOP_RULES_FILE: '.pfm/.rubocop.yml'
60
+ # FOODCRITIC_RULES_FILE: '.pfm/.foodcritic'
61
+ # BUILD_BASE_DIR: 'builds'
62
+ # INF_BASE_DIR: 'inf'
63
+ # PUBLISH_BUCKET: 'dev-publish'
64
+ # PUBLISH_PREFIX: 'axp'
65
+ # PACKER_VERSION: '1.0.4'
66
+ # TERRAFORM_VERSION: '0.8.7'
67
+ class Settings
68
+ # Defines an individual setting
69
+ class Setting
70
+ attr_reader :value
71
+
72
+ def initialize(value, required = false)
73
+ @value = value
74
+ @required = required
75
+ end
76
+
77
+ def required?
78
+ @required
79
+ end
80
+
81
+ def defined?
82
+ !@value.nil?
83
+ end
84
+
85
+ def to_s
86
+ @value.to_s
87
+ end
88
+ end
89
+
90
+ # @return [Map] returns the map of Pfm::Settings::Setting objects
91
+ attr_reader :settings
92
+ attr_reader :config_directory
93
+ attr_reader :run_dir
94
+
95
+ def initialize(expand = false)
96
+ @run_dir = Dir.pwd
97
+ @config_directory = config_dir
98
+ @expand = expand
99
+
100
+ @settings = {}
101
+
102
+ # Required
103
+ @settings['AWS_REGION'] = Setting.new('us-east-1', true)
104
+ @settings['RUBOCOP_RULES_FILE'] = Setting.new('.rubocop.yml', true)
105
+ @settings['FOODCRITIC_RULES_FILE'] = Setting.new('.foodcritic', true)
106
+ @settings['BUILD_BASE_DIR'] = Setting.new('builds', true)
107
+ @settings['INF_BASE_DIR'] = Setting.new('inf', true)
108
+ @settings['PACKER_VERSION'] = Setting.new(::Packer::Binary.config.version, true)
109
+ @settings['TERRAFORM_VERSION'] = Setting.new(::Terraform::Binary.config.version, true)
110
+
111
+ # Optional Defaults
112
+ @settings['PUBLISH_BUCKET'] = Setting.new('')
113
+ @settings['PUBLISH_PREFIX'] = Setting.new('')
114
+
115
+ load_config
116
+ end
117
+
118
+ # load the config file and resolve file paths if set
119
+ def load_config
120
+ if config_exists?
121
+ require 'yaml'
122
+ YAML.load_file(config_file).each do |key, value|
123
+ msg("WARNING: unrecognized config key: '#{key}'") unless @settings.key? key
124
+ next unless @settings.key? key
125
+
126
+ required = @settings[key].required?
127
+ @settings[key] = Setting.new(value, required)
128
+ end
129
+
130
+ # Also load each setting into the environment
131
+ @settings.each { |key, setting| ENV[key] = setting.value }
132
+
133
+ # Resolve paths if set
134
+ resolve_paths if @expand
135
+ else
136
+ create_config
137
+ load_config
138
+ end
139
+ end
140
+
141
+ # Saves a new configuration to disk
142
+ # @param settings [Map<Pfm::Settings::Setting>] a new map of Pfm::Settings::Setting objects
143
+ def save_config(settings)
144
+ @settings = settings
145
+
146
+ write_config
147
+ end
148
+
149
+ # returns a simple map of Pfm::Settings.settings[key] => Pfm::Settings.setting[key].to_s
150
+ # @return [Map<String>]
151
+ def settings_strings
152
+ map = {}
153
+ @settings.each do |key, setting|
154
+ map[key] = setting.to_s
155
+ end
156
+
157
+ map
158
+ end
159
+
160
+ private
161
+
162
+ # create the config directory and file if they don't already exist
163
+ def create_config
164
+ return if config_exists?
165
+
166
+ FileUtils.mkdir_p config_dir
167
+ FileUtils.touch config_file
168
+
169
+ write_config
170
+ end
171
+
172
+ # expands variables like '.' and '~' in settings values paths
173
+ def resolve_paths
174
+ @settings.each do |key, setting|
175
+ required = @settings[key].required?
176
+ @settings[key] = Setting.new(File.realpath(setting.value), required) if File.exist? setting.value
177
+ end
178
+ end
179
+
180
+ # writes the @settings attribute to disk
181
+ def write_config
182
+ config_string = '---'
183
+
184
+ @settings.each do |key, setting|
185
+ config_string += "\n#{key}: '#{setting.value}'"
186
+ end
187
+
188
+ config_string += "\n"
189
+
190
+ File.open(config_file, 'w') { |file| file.write(config_string) }
191
+ end
192
+
193
+ def config_exists?
194
+ File.exist? config_file
195
+ end
196
+
197
+ def config_dir
198
+ "#{@run_dir}/.pfm"
199
+ end
200
+
201
+ def config_file
202
+ "#{config_dir}/config"
203
+ end
204
+ end
205
+ end
@@ -0,0 +1,52 @@
1
+ module Pfm
2
+ module Validator
3
+ # This is here to hold attr_accessor data for Validator context variables
4
+ class Context
5
+ def self.add_attr(name)
6
+ @attributes ||= []
7
+
8
+ unless @attributes.include?(name)
9
+ @attributes << name
10
+ attr_accessor(name)
11
+ end
12
+ end
13
+
14
+ def self.reset
15
+ return if @attributes.nil?
16
+
17
+ @attributes.each do |attr|
18
+ remove_method(attr)
19
+ end
20
+
21
+ @attributes = nil
22
+ end
23
+ end
24
+
25
+ def self.reset
26
+ @context = nil
27
+ end
28
+
29
+ def self.context
30
+ @context ||= Context.new
31
+ end
32
+
33
+ def self.add_attr_to_context(name, value = nil)
34
+ sym_name = name.to_sym
35
+ Pfm::Validator::Context.add_attr(sym_name)
36
+ Pfm::Validator::TemplateHelper.delegate_to_app_context(sym_name)
37
+ context.public_send("#{sym_name}=", value)
38
+ end
39
+
40
+ module TemplateHelper
41
+ def self.delegate_to_app_context(name)
42
+ define_method(name) do
43
+ Pfm::Validator.context.public_send(name)
44
+ end
45
+ end
46
+
47
+ def year
48
+ Time.now.year
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ module Pfm
2
+ VERSION = '1.0.0.pre.2'.freeze
3
+ end
@@ -0,0 +1,24 @@
1
+ require 'mixlib/cli'
2
+ require 'mixlib/shellout'
3
+ require 'packer/binary'
4
+ require 'terraform/binary'
5
+
6
+ require 'idlc-sdk-core'
7
+ require 'idlc-sdk-build'
8
+ require 'idlc-sdk-deploy'
9
+
10
+ require 'idlc-sdk-pfm/version'
11
+ require 'idlc-sdk-pfm/settings'
12
+ require 'idlc-sdk-pfm/helpers'
13
+ require 'idlc-sdk-pfm/cli'
14
+ require 'idlc-sdk-pfm/commands_map'
15
+ require 'idlc-sdk-pfm/builtin_commands'
16
+
17
+ # Load config file as mapp of strings ex. SETTINGS[ 'AWS_REGION' ] = 'us-east-1'
18
+ SETTINGS = Pfm::Settings.new(true).settings_strings
19
+
20
+ # Global repository version file
21
+ REPO_VERSION_FILE = 'version'.freeze
22
+
23
+ # Load the current repository version number
24
+ REPO_VERSION = Idlc::Utility.set_global_version(REPO_VERSION_FILE)
metadata ADDED
@@ -0,0 +1,342 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: idlc-sdk-pfm
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.pre.2
5
+ platform: ruby
6
+ authors:
7
+ - Nathan Cazell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.48.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.48.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: idlc-sdk-core
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: idlc-sdk-build
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: idlc-sdk-deploy
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: chefspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mixlib-cli
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: mixlib-shellout
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-junit-formatter
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '='
200
+ - !ruby/object:Gem::Version
201
+ version: 0.48.1
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '='
207
+ - !ruby/object:Gem::Version
208
+ version: 0.48.1
209
+ description: Provides the pfm executable for idlc-sdk. This gem is part of the IDLC
210
+ SDK
211
+ email:
212
+ - nathan.cazell@imageapi.com
213
+ executables:
214
+ - pfm
215
+ extensions: []
216
+ extra_rdoc_files: []
217
+ files:
218
+ - ".gitignore"
219
+ - ".rspec"
220
+ - ".travis.yml"
221
+ - ".yardopts"
222
+ - Gemfile
223
+ - LICENSE.txt
224
+ - README.md
225
+ - Rakefile
226
+ - bin/pfm
227
+ - docs/GettingStarted.md
228
+ - idlc-sdk-pfm.gemspec
229
+ - lib/idlc-sdk-pfm.rb
230
+ - lib/idlc-sdk-pfm/builtin_commands.rb
231
+ - lib/idlc-sdk-pfm/cli.rb
232
+ - lib/idlc-sdk-pfm/command/apply.rb
233
+ - lib/idlc-sdk-pfm/command/base.rb
234
+ - lib/idlc-sdk-pfm/command/build.rb
235
+ - lib/idlc-sdk-pfm/command/configure.rb
236
+ - lib/idlc-sdk-pfm/command/destroy.rb
237
+ - lib/idlc-sdk-pfm/command/exec.rb
238
+ - lib/idlc-sdk-pfm/command/format.rb
239
+ - lib/idlc-sdk-pfm/command/generate.rb
240
+ - lib/idlc-sdk-pfm/command/generator_commands.rb
241
+ - lib/idlc-sdk-pfm/command/generator_commands/base.rb
242
+ - lib/idlc-sdk-pfm/command/generator_commands/server_build.rb
243
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/Berksfile
244
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml
245
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/README.md
246
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb
247
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/chefignore
248
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md
249
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/cookbook_readmes/README.md
250
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/delivery-config.json
251
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/delivery-project.toml
252
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/gitignore
253
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/README.md
254
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/README.md
255
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb
256
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb
257
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb
258
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/data_bags/README.md
259
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json
260
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/dot-chef-repo.txt
261
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/environments/README.md
262
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/environments/example.json
263
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/policies/README.md
264
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/roles/README.md
265
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/repo/roles/example.json
266
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/spec_helper.rb
267
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/files/default/spec_helper_policyfile.rb
268
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/metadata.rb
269
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/app.rb
270
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/attribute.rb
271
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/build_cookbook.rb
272
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/cookbook.rb
273
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/cookbook_file.rb
274
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/lwrp.rb
275
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/policyfile.rb
276
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/recipe.rb
277
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/repo.rb
278
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/recipes/template.rb
279
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.all_rights.erb
280
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.apachev2.erb
281
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.gplv2.erb
282
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.gplv3.erb
283
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/LICENSE.mit.erb
284
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/Policyfile.rb.erb
285
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/README.md.erb
286
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/attribute.rb.erb
287
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb
288
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb
289
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb
290
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/cookbook_file.erb
291
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/inspec_default_test.rb.erb
292
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/kitchen.yml.erb
293
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb
294
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/metadata.rb.erb
295
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/provider.rb.erb
296
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/recipe.rb.erb
297
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/recipe_spec.rb.erb
298
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/repo/gitignore.erb
299
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/resource.rb.erb
300
+ - lib/idlc-sdk-pfm/command/generator_commands/skeletons/code_generator/templates/default/template.erb
301
+ - lib/idlc-sdk-pfm/command/plan.rb
302
+ - lib/idlc-sdk-pfm/command/templates/app/files/config/client.rb.template
303
+ - lib/idlc-sdk-pfm/command/templates/app/files/config/init.ps1.userdata
304
+ - lib/idlc-sdk-pfm/command/templates/base/files/config/client.rb.template
305
+ - lib/idlc-sdk-pfm/command/templates/base/files/config/init.ps1.userdata
306
+ - lib/idlc-sdk-pfm/command/validate.rb
307
+ - lib/idlc-sdk-pfm/command/validator_commands.rb
308
+ - lib/idlc-sdk-pfm/command/validator_commands/base.rb
309
+ - lib/idlc-sdk-pfm/command/validator_commands/infrastructure.rb
310
+ - lib/idlc-sdk-pfm/command/validator_commands/server_build.rb
311
+ - lib/idlc-sdk-pfm/commands_map.rb
312
+ - lib/idlc-sdk-pfm/generator.rb
313
+ - lib/idlc-sdk-pfm/helpers.rb
314
+ - lib/idlc-sdk-pfm/settings.rb
315
+ - lib/idlc-sdk-pfm/validator.rb
316
+ - lib/idlc-sdk-pfm/version.rb
317
+ homepage: https://github.com/nathantcz/idlc-sdk
318
+ licenses:
319
+ - MIT
320
+ metadata:
321
+ source_code_uri: https://github.com/nathantcz/idlc-sdk-deploy
322
+ post_install_message:
323
+ rdoc_options: []
324
+ require_paths:
325
+ - lib
326
+ required_ruby_version: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: '0'
331
+ required_rubygems_version: !ruby/object:Gem::Requirement
332
+ requirements:
333
+ - - ">"
334
+ - !ruby/object:Gem::Version
335
+ version: 1.3.1
336
+ requirements: []
337
+ rubyforge_project:
338
+ rubygems_version: 2.6.11
339
+ signing_key:
340
+ specification_version: 4
341
+ summary: IDLC SDK for AWS resources - PFM
342
+ test_files: []