idlc-sdk-pfm 1.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
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: []