lono 8.0.0.pre.rc1 → 8.0.0.pre.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/.cody/acceptance/bin/build.sh +5 -5
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +84 -0
  4. data/.github/ISSUE_TEMPLATE/documentation.md +12 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +64 -0
  6. data/.github/ISSUE_TEMPLATE/question.md +14 -0
  7. data/.github/ISSUE_TEMPLATE.md +7 -0
  8. data/.github/PULL_REQUEST_TEMPLATE.md +50 -0
  9. data/CHANGELOG.md +59 -2
  10. data/Gemfile +1 -3
  11. data/README.md +2 -7
  12. data/lib/lono/app/callable_option/concern.rb +12 -0
  13. data/lib/lono/app/callable_option.rb +56 -0
  14. data/lib/lono/app.rb +56 -20
  15. data/lib/lono/autoloader.rb +1 -0
  16. data/lib/lono/aws_services/helper.rb +0 -2
  17. data/lib/lono/blueprint.rb +1 -18
  18. data/lib/lono/builder/allow/base.rb +54 -0
  19. data/lib/lono/builder/allow/env.rb +17 -0
  20. data/lib/lono/builder/allow/region.rb +20 -0
  21. data/lib/lono/builder/allow.rb +8 -0
  22. data/lib/lono/builder/configset/combiner.rb +145 -0
  23. data/lib/lono/builder/configset/definition/base.rb +47 -0
  24. data/lib/lono/builder/configset/definition/context.rb +70 -0
  25. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/auth.rb +1 -1
  26. data/lib/lono/builder/configset/definition/dsl/syntax/content.rb +22 -0
  27. data/lib/lono/{configset/strategy/helpers/dsl/syntax.rb → builder/configset/definition/dsl/syntax/core.rb} +15 -9
  28. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/package.rb +1 -1
  29. data/lib/lono/builder/configset/definition/dsl/syntax.rb +5 -0
  30. data/lib/lono/{configset/strategy → builder/configset/definition}/dsl.rb +10 -14
  31. data/lib/lono/{configset/strategy → builder/configset/definition}/erb.rb +13 -16
  32. data/lib/lono/builder/configset/definition.rb +18 -0
  33. data/lib/lono/builder/configset/evaluator.rb +10 -0
  34. data/lib/lono/builder/configset/registration.rb +35 -0
  35. data/lib/lono/builder/context.rb +33 -18
  36. data/lib/lono/builder/dsl/evaluator.rb +45 -0
  37. data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
  38. data/lib/lono/builder/dsl/finalizer/configsets.rb +20 -0
  39. data/lib/lono/builder/dsl/finalizer/files/base.rb +4 -0
  40. data/lib/lono/builder/dsl/finalizer/files/build.rb +50 -0
  41. data/lib/lono/builder/dsl/finalizer/files/replace.rb +36 -0
  42. data/lib/lono/builder/dsl/finalizer/files.rb +9 -0
  43. data/lib/lono/builder/{template/dsl → dsl}/finalizer/parameter_groups.rb +6 -5
  44. data/lib/lono/builder/dsl/finalizer.rb +15 -0
  45. data/lib/lono/builder/{template/dsl/evaluator/helpers/ec2_helper.rb → dsl/helpers/ec2.rb} +3 -3
  46. data/lib/lono/builder/dsl/helpers/files.rb +7 -0
  47. data/lib/lono/builder/{template/helpers.rb → dsl/helpers/partials.rb} +48 -57
  48. data/lib/lono/builder/dsl/helpers/s3.rb +14 -0
  49. data/lib/lono/builder/{context/ssm_fetcher.rb → dsl/helpers/ssm/fetcher.rb} +5 -3
  50. data/lib/lono/builder/{context/helpers.rb → dsl/helpers/ssm.rb} +3 -3
  51. data/lib/lono/builder/{template/dsl/evaluator/helpers/stack_helper.rb → dsl/helpers/stack.rb} +6 -6
  52. data/lib/lono/builder/{template/dsl/evaluator/helpers/tags_helper.rb → dsl/helpers/tags.rb} +2 -2
  53. data/lib/lono/builder/dsl/helpers/template_file.rb +66 -0
  54. data/lib/lono/builder/dsl/helpers.rb +5 -0
  55. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/base.rb +4 -5
  56. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/condition.rb +1 -1
  57. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/mapping.rb +1 -1
  58. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/output.rb +1 -1
  59. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/parameter.rb +1 -1
  60. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/resource/property_mover.rb +12 -2
  61. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/resource.rb +1 -1
  62. data/lib/lono/builder/{template/dsl/evaluator/section → dsl/syntax/core}/section.rb +1 -1
  63. data/lib/lono/builder/dsl/syntax/core/squeezer.rb +40 -0
  64. data/lib/lono/builder/{template/dsl/evaluator/section/methods.rb → dsl/syntax/core.rb} +2 -2
  65. data/lib/lono/builder/{template/dsl/evaluator → dsl/syntax}/fn.rb +1 -3
  66. data/lib/lono/builder/{template/dsl/evaluator → dsl}/syntax/parameter_group.rb +1 -1
  67. data/lib/lono/builder/dsl/syntax.rb +9 -0
  68. data/lib/lono/builder/{template/dsl.rb → dsl.rb} +2 -2
  69. data/lib/lono/builder/param.rb +5 -2
  70. data/lib/lono/builder/template/upload.rb +2 -15
  71. data/lib/lono/builder/template.rb +1 -3
  72. data/lib/lono/builder/{template/dsl/evaluator → util}/stringify.rb +1 -1
  73. data/lib/lono/builder.rb +39 -0
  74. data/lib/lono/bundler/component/props/extension.rb +0 -1
  75. data/lib/lono/bundler/extract/tar.rb +0 -1
  76. data/lib/lono/bundler/util/git.rb +18 -16
  77. data/lib/lono/cfn/base.rb +2 -2
  78. data/lib/lono/cfn/cancel.rb +5 -5
  79. data/lib/lono/cfn/concerns/build.rb +1 -1
  80. data/lib/lono/cfn/delete.rb +5 -2
  81. data/lib/lono/cfn/deploy/iam.rb +1 -2
  82. data/lib/lono/cfn/deploy/rollback.rb +1 -3
  83. data/lib/lono/cfn/deploy.rb +46 -5
  84. data/lib/lono/cfn/download.rb +0 -1
  85. data/lib/lono/cfn/plan/changeset.rb +3 -3
  86. data/lib/lono/cfn/plan/diff/data.rb +11 -1
  87. data/lib/lono/cfn/plan/diff/file.rb +2 -1
  88. data/lib/lono/cfn/plan/param.rb +1 -1
  89. data/lib/lono/cfn/plan/template.rb +2 -2
  90. data/lib/lono/cfn/plan.rb +1 -0
  91. data/lib/lono/cli/abstract.rb +0 -6
  92. data/lib/lono/cli/base.rb +6 -3
  93. data/lib/lono/cli/clean.rb +3 -2
  94. data/lib/lono/cli/help/cfn/status.md +0 -1
  95. data/lib/lono/cli/help/new/helper.md +27 -0
  96. data/lib/lono/cli/help/new/hook.md +14 -0
  97. data/lib/lono/cli/help/new/project.md +3 -10
  98. data/lib/lono/cli/help/seed.md +22 -21
  99. data/lib/lono/cli/iam.rb +27 -0
  100. data/lib/lono/cli/list.rb +3 -6
  101. data/lib/lono/cli/new/blueprint.rb +3 -9
  102. data/lib/lono/cli/new/configset.rb +11 -44
  103. data/lib/lono/cli/new/helper.rb +19 -11
  104. data/lib/lono/cli/new/hook.rb +32 -0
  105. data/lib/lono/cli/new/sequence.rb +6 -1
  106. data/lib/lono/cli/new.rb +9 -9
  107. data/lib/lono/cli/s3.rb +3 -3
  108. data/lib/lono/cli/script/build.rb +0 -5
  109. data/lib/lono/cli/status.rb +18 -0
  110. data/lib/lono/{inspector → cli}/summary.rb +23 -33
  111. data/lib/lono/cli.rb +16 -16
  112. data/lib/lono/command.rb +28 -2
  113. data/lib/lono/component.rb +29 -0
  114. data/lib/lono/concerns/aws_info.rb +14 -0
  115. data/lib/lono/concerns/names.rb +9 -0
  116. data/lib/lono/configset.rb +17 -0
  117. data/lib/lono/core.rb +11 -1
  118. data/lib/lono/ext/bundler.rb +7 -0
  119. data/lib/lono/ext/core/module.rb +31 -0
  120. data/lib/lono/ext/core/object.rb +32 -0
  121. data/lib/lono/ext/core/string.rb +9 -0
  122. data/lib/lono/ext.rb +4 -0
  123. data/lib/lono/files/base.rb +12 -0
  124. data/lib/lono/{utils → files/builder/lambda_layer}/rsync.rb +3 -5
  125. data/lib/lono/{app_file/build → files/builder}/lambda_layer/ruby_packager.rb +104 -79
  126. data/lib/lono/files/builder/lambda_layer/ruby_version.rb +38 -0
  127. data/lib/lono/files/builder/lambda_layer.rb +17 -0
  128. data/lib/lono/files/builder.rb +37 -0
  129. data/lib/lono/files/compressor.rb +53 -0
  130. data/lib/lono/files/concerns/post_processing.rb +52 -0
  131. data/lib/lono/files/concerns/registration.rb +16 -0
  132. data/lib/lono/files/registry.rb +6 -0
  133. data/lib/lono/files.rb +41 -0
  134. data/lib/lono/hooks/builder.rb +50 -0
  135. data/lib/lono/hooks/concern.rb +9 -0
  136. data/lib/lono/hooks/dsl.rb +20 -0
  137. data/lib/lono/hooks/runner.rb +46 -0
  138. data/lib/lono/layering/layer.rb +64 -56
  139. data/lib/lono/logger.rb +2 -3
  140. data/lib/lono/names.rb +7 -10
  141. data/lib/lono/s3/bucket.rb +43 -37
  142. data/lib/lono/s3/rollback.rb +8 -0
  143. data/lib/lono/s3/uploader.rb +33 -28
  144. data/lib/lono/script/build.rb +0 -5
  145. data/lib/lono/seeder.rb +38 -29
  146. data/lib/lono/user_data.rb +3 -1
  147. data/lib/lono/utils/sh.rb +32 -0
  148. data/lib/lono/utils.rb +5 -0
  149. data/lib/lono/version.rb +1 -1
  150. data/lib/lono/yamler/validator.rb +7 -22
  151. data/lib/lono.rb +8 -0
  152. data/lib/templates/configset/configset.rb +2 -16
  153. data/lib/templates/examples/configset/configset.rb +16 -0
  154. data/lib/templates/helper/%underscore_name%_helper.rb.tt +1 -1
  155. data/lib/templates/hook/config/hooks.rb.tt +14 -0
  156. data/lono.gemspec +1 -1
  157. metadata +99 -93
  158. data/lib/lono/app_file/base.rb +0 -28
  159. data/lib/lono/app_file/build/lambda_layer.rb +0 -20
  160. data/lib/lono/app_file/build.rb +0 -79
  161. data/lib/lono/app_file/registry/item.rb +0 -24
  162. data/lib/lono/app_file/registry.rb +0 -16
  163. data/lib/lono/app_file/upload.rb +0 -12
  164. data/lib/lono/builder/context/loader/load_files.rb +0 -23
  165. data/lib/lono/builder/context/loader.rb +0 -35
  166. data/lib/lono/builder/context/params.rb +0 -7
  167. data/lib/lono/builder/template/configset_injector.rb +0 -52
  168. data/lib/lono/builder/template/dsl/evaluator/helpers/core_helper.rb +0 -14
  169. data/lib/lono/builder/template/dsl/evaluator/helpers/file_helper.rb +0 -44
  170. data/lib/lono/builder/template/dsl/evaluator/helpers/s3_helper.rb +0 -16
  171. data/lib/lono/builder/template/dsl/evaluator/helpers.rb +0 -16
  172. data/lib/lono/builder/template/dsl/evaluator/squeezer.rb +0 -24
  173. data/lib/lono/builder/template/dsl/evaluator/syntax/extend_with.rb +0 -9
  174. data/lib/lono/builder/template/dsl/evaluator/syntax.rb +0 -11
  175. data/lib/lono/builder/template/dsl/evaluator.rb +0 -45
  176. data/lib/lono/builder/template/dsl/finalizer.rb +0 -12
  177. data/lib/lono/builder/template/evaluate.rb +0 -52
  178. data/lib/lono/builder/template/post_processor.rb +0 -67
  179. data/lib/lono/cli/build.rb +0 -101
  180. data/lib/lono/cli/code.rb +0 -22
  181. data/lib/lono/cli/help/blueprint/new.md +0 -56
  182. data/lib/lono/cli/new/extension.rb +0 -57
  183. data/lib/lono/configset/builder.rb +0 -59
  184. data/lib/lono/configset/combiner.rb +0 -164
  185. data/lib/lono/configset/evaluate_file.rb +0 -8
  186. data/lib/lono/configset/meta/dsl.rb +0 -12
  187. data/lib/lono/configset/meta.rb +0 -19
  188. data/lib/lono/configset/s3_file/build.rb +0 -34
  189. data/lib/lono/configset/s3_file/item.rb +0 -38
  190. data/lib/lono/configset/s3_file/registry.rb +0 -12
  191. data/lib/lono/configset/s3_file/upload.rb +0 -12
  192. data/lib/lono/configset/strategy/base.rb +0 -83
  193. data/lib/lono/configset/strategy/helpers/dsl/core.rb +0 -18
  194. data/lib/lono/configset/strategy/helpers/dsl.rb +0 -8
  195. data/lib/lono/configset/strategy/helpers/erb.rb +0 -9
  196. data/lib/lono/extensions/dsl.rb +0 -8
  197. data/lib/lono/extensions/loader.rb +0 -19
  198. data/lib/lono/extensions.rb +0 -18
  199. data/lib/lono/importer/base.rb +0 -48
  200. data/lib/lono/importer/converter.rb +0 -19
  201. data/lib/lono/importer/download.rb +0 -46
  202. data/lib/lono/importer/dsl.rb +0 -36
  203. data/lib/lono/importer/params.rb +0 -56
  204. data/lib/lono/importer/service/coder.rb +0 -81
  205. data/lib/lono/inspector/base.rb +0 -32
  206. data/lib/lono/lookup.rb +0 -12
  207. data/lib/lono/seeder/service_role.rb +0 -11
  208. data/lib/lono/utils/context.rb +0 -15
  209. data/lib/lono/utils/item/file_methods.rb +0 -29
  210. data/lib/lono/utils/item/zip.rb +0 -42
  211. data/lib/templates/extension/lib/%extension_name%/autoloader.rb.tt +0 -23
  212. data/lib/templates/extension/lib/%extension_name%/helpers/mappings.rb.tt +0 -24
  213. data/lib/templates/extension/lib/%extension_name%/helpers/outputs.rb.tt +0 -7
  214. data/lib/templates/extension/lib/%extension_name%/helpers/parameters.rb.tt +0 -10
  215. data/lib/templates/extension/lib/%extension_name%/helpers/resources/resource.rb.tt +0 -4
  216. data/lib/templates/extension/lib/%extension_name%/helpers/variables.rb.tt +0 -6
  217. data/lib/templates/extension/lib/%extension_name%/version.rb.tt +0 -3
  218. data/lib/templates/extension/lib/%extension_name%.rb.tt +0 -8
data/lib/lono/seeder.rb CHANGED
@@ -5,37 +5,21 @@ require "yaml"
5
5
 
6
6
  module Lono
7
7
  class Seeder < Lono::CLI::Base
8
+ extend Memoist
8
9
  include Lono::AwsServices
9
10
  include Lono::Cfn::Concerns::TemplateOutput
10
- include ServiceRole
11
-
12
- # What's needed for a Thor::Group or "Sequence"
13
- # Gives us Thor::Actions commands like create_file
14
- include Thor::Actions
15
- include Thor::Base
16
- # Override Thor::Base initialize
17
- def initialize(options={})
18
- reinitialize(options)
19
- end
20
-
21
- extend Memoist
22
11
 
23
12
  def run
24
13
  build_template
25
- self.destination_root = Dir.pwd # Thor::Actions require destination_root to be set
26
- create_params
27
- create_variables
14
+ build_params
15
+ build_vars
28
16
  end
29
17
 
30
18
  def build_template
31
19
  Lono::Builder::Template.new(@options).run
32
20
  end
33
21
 
34
- def create_params
35
- create_param_file
36
- end
37
-
38
- def create_param_file
22
+ def build_params
39
23
  if template_output.parameters.empty?
40
24
  logger.info "Template has no parameters."
41
25
  return
@@ -59,7 +43,7 @@ module Lono
59
43
  end
60
44
 
61
45
  content = lines.join("\n")
62
- dest_path = "config/blueprints/#{@blueprint.name}/params/#{Lono.env}.txt" # only support environment level parameters for now
46
+ dest_path = "#{dest_folder}/params/#{Lono.env}.env" # only support environment level parameters for now
63
47
  create_file(dest_path, content) # Thor::Action
64
48
  end
65
49
 
@@ -83,19 +67,44 @@ module Lono
83
67
  md[2]
84
68
  end
85
69
 
86
- def self.source_root
87
- Lono.root
88
- end
89
-
90
- def create_variables
70
+ def build_vars
91
71
  src = "#{@blueprint.root}/seed/vars"
92
- dest = "#{Lono.root}/config/blueprints/#{@blueprint.name}/vars"
72
+ dest = "#{dest_folder}/vars"
93
73
  directory(src, dest) if File.exist?(src)
94
74
  end
95
75
 
76
+ # config structure:
77
+ #
78
+ # config/blueprints/demo
79
+ #
80
+ # general structure:
81
+ #
82
+ # app/blueprints/demo/config
83
+ # vendor/blueprints/demo/config
84
+ #
85
+ def dest_folder
86
+ where = @options[:where] || Lono.config.seed.where
87
+ if where == "config"
88
+ "#{Lono.root}/config/blueprints/#{@blueprint.name}"
89
+ else # app or vendor
90
+ "#{Lono.root}/#{where}/blueprints/#{@blueprint.name}/config"
91
+ end
92
+ end
93
+
96
94
  private
97
- def env
98
- Lono.env # allows for seed/vars/%env%.rb.tt
95
+ def create_file(dest_path, content) # Thor::Action)
96
+ sequence.create_file(dest_path, content)
97
+ end
98
+
99
+ def directory(src, dest)
100
+ sequence.send(:set_template_paths, src)
101
+ sequence.destination_root = Lono.root
102
+ sequence.directory(".", dest, context: binding) # Thor::Action
103
+ end
104
+
105
+ def sequence
106
+ sequence = Lono::CLI::New::Sequence.new(@options)
99
107
  end
108
+ memoize :sequence
100
109
  end
101
110
  end
@@ -6,6 +6,8 @@ module Lono
6
6
  # Normally, the Lono::Erb#run method generates the CloudFormation template
7
7
  # and embeds user-data script into the template.
8
8
  class UserData < Lono::CLI::Base
9
+ include Lono::Builder::Dsl::Syntax
10
+
9
11
  def initialize(options={})
10
12
  super
11
13
  @name = options[:name]
@@ -16,7 +18,7 @@ module Lono
16
18
  pretty_path = pretty_path(@path)
17
19
  logger.info "Building user_data for '#{@name}' at #{pretty_path}"
18
20
  if File.exist?(@path)
19
- logger.info RenderMePretty.result(@path, context: context)
21
+ logger.info RenderMePretty.result(@path, context: self)
20
22
  else
21
23
  logger.info "ERROR: #{pretty_path} does not exist".color(:red)
22
24
  exit 1
@@ -0,0 +1,32 @@
1
+ module Lono::Utils
2
+ module Sh
3
+ def sh(command, options={})
4
+ on_fail = options[:on_fail].nil? ? "raise" : options[:on_fail]
5
+ strategy = options[:strategy].nil? ? "system" : options[:strategy] # system or backticks
6
+
7
+ logger.info "=> #{command}"
8
+
9
+ if strategy == "backticks"
10
+ out = `#{command}`
11
+ logger.debug out
12
+ success = $?.success?
13
+ else
14
+ success = system(command)
15
+ end
16
+
17
+ result = strategy == "backticks" ? out : success
18
+ return result if success
19
+
20
+ logger.error "ERROR: Running #{command}"
21
+ case on_fail.to_sym
22
+ when :raise
23
+ raise
24
+ when :exit
25
+ status = $?.exitstatus
26
+ exit status
27
+ end
28
+
29
+ result
30
+ end
31
+ end
32
+ end
data/lib/lono/utils.rb ADDED
@@ -0,0 +1,5 @@
1
+ module Lono
2
+ module Utils
3
+ include_modules "utils"
4
+ end
5
+ end
data/lib/lono/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lono
2
- VERSION = "8.0.0-rc1"
2
+ VERSION = "8.0.0-rc4"
3
3
  end
@@ -1,5 +1,8 @@
1
1
  module Lono::Yamler
2
2
  class Validator
3
+ include Lono::Utils::Logging
4
+ include Lono::Utils::Pretty
5
+
3
6
  def initialize(path)
4
7
  @path = path
5
8
  end
@@ -18,34 +21,16 @@ module Lono::Yamler
18
21
  end
19
22
 
20
23
  def handle_yaml_syntax_error(e, path)
21
- io = StringIO.new
22
- io.puts "Invalid yaml. Output written for debugging: #{path}".color(:red)
23
- io.puts "ERROR: #{e.message}".color(:red)
24
+ logger.error "ERROR: Invalid YAML. #{e.message}".color(:red)
25
+ logger.error "Template for debugging: #{pretty_path(path)}"
24
26
 
25
27
  # Grab line info. Example error:
26
28
  # ERROR: (<unknown>): could not find expected ':' while scanning a simple key at line 2 column 1
27
29
  md = e.message.match(/at line (\d+) column (\d+)/)
28
30
  line = md[1].to_i
29
31
 
30
- lines = IO.read(path).split("\n")
31
- context = 5 # lines of context
32
- top, bottom = [line-context-1, 0].max, line+context-1
33
- spacing = lines.size.to_s.size
34
- lines[top..bottom].each_with_index do |line_content, index|
35
- line_number = top+index+1
36
- if line_number == line
37
- io.printf("%#{spacing}d %s\n".color(:red), line_number, line_content)
38
- else
39
- io.printf("%#{spacing}d %s\n", line_number, line_content)
40
- end
41
- end
42
-
43
- if ENV['LONO_TEST']
44
- io.string
45
- else
46
- puts io.string
47
- exit 1
48
- end
32
+ DslEvaluator.print_code(path, line)
33
+ exit 1
49
34
  end
50
35
  end
51
36
  end
data/lib/lono.rb CHANGED
@@ -11,6 +11,7 @@ require 'cli-format'
11
11
  require 'dsl_evaluator'
12
12
  require 'fileutils'
13
13
  require 'json'
14
+ require 'lono/ext'
14
15
  require 'memoist'
15
16
  require 'plissken'
16
17
  require 'rainbow/ext/string'
@@ -27,4 +28,11 @@ module Lono
27
28
  extend Core
28
29
  end
29
30
 
31
+ DslEvaluator.configure do |config|
32
+ config.backtrace.select_pattern = Lono.root.to_s
33
+ config.logger = Lono.logger
34
+ config.on_exception = :exit
35
+ config.root = Lono.root
36
+ end
37
+
30
38
  Lono::Booter.boot
@@ -1,16 +1,2 @@
1
- configset("config1") do
2
- command("test",
3
- command: 'echo "$CFNTEST" > test1.txt',
4
- env: {
5
- CFNTEST: "I come from config1"
6
- }
7
- )
8
- end
9
- configset("config2") do
10
- command("test",
11
- command: 'echo "$CFNTEST" > test2.txt',
12
- env: {
13
- CFNTEST: "I come from config2"
14
- }
15
- )
16
- end
1
+ # This is where you write your configset code
2
+ # Docs: https://lono.cloud/docs/configsets/
@@ -0,0 +1,16 @@
1
+ configset("config1") do
2
+ command("test",
3
+ command: 'echo "$CFNTEST" > test1.txt',
4
+ env: {
5
+ CFNTEST: "I come from config1"
6
+ }
7
+ )
8
+ end
9
+ configset("config2") do
10
+ command("test",
11
+ command: 'echo "$CFNTEST" > test2.txt',
12
+ env: {
13
+ CFNTEST: "I come from config2"
14
+ }
15
+ )
16
+ end
@@ -1,6 +1,6 @@
1
1
  module <%= class_name %>Helper
2
2
  # Your code goes here
3
- # def custom_dsl_method
3
+ # def custom_method
4
4
  # ...
5
5
  # end
6
6
  end
@@ -0,0 +1,14 @@
1
+ <%
2
+ message = if blueprint
3
+ "app/blueprints/#{blueprint}/config/hooks.rb: test blueprint hook for build"
4
+ else
5
+ "config/hooks.rb: test project hook for build"
6
+ end
7
+ -%>
8
+ before("build",
9
+ execute: "echo '<%= message %> before hook'",
10
+ )
11
+
12
+ after("build",
13
+ execute: "echo '<%= message %> after hook'"
14
+ )
data/lono.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "cfn-status"
37
37
  spec.add_dependency "cfn_camelizer"
38
38
  spec.add_dependency "cli-format"
39
- spec.add_dependency "dsl_evaluator"
39
+ spec.add_dependency "dsl_evaluator", ">= 0.3.0" # for DslEvaluator.print_code
40
40
  spec.add_dependency "filesize"
41
41
  spec.add_dependency "graph" # lono graph command dependency
42
42
  spec.add_dependency "hashie"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lono
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0.pre.rc1
4
+ version: 8.0.0.pre.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-21 00:00:00.000000000 Z
11
+ date: 2022-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: '0'
187
+ version: 0.3.0
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: '0'
194
+ version: 0.3.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: filesize
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -487,6 +487,12 @@ files:
487
487
  - ".cody/acceptance/role.rb"
488
488
  - ".cody/shared/script/install.sh"
489
489
  - ".cody/shared/script/install/lono.sh"
490
+ - ".github/ISSUE_TEMPLATE.md"
491
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
492
+ - ".github/ISSUE_TEMPLATE/documentation.md"
493
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
494
+ - ".github/ISSUE_TEMPLATE/question.md"
495
+ - ".github/PULL_REQUEST_TEMPLATE.md"
490
496
  - ".gitignore"
491
497
  - ".rspec"
492
498
  - CHANGELOG.md
@@ -502,61 +508,73 @@ files:
502
508
  - lib/lono/api/repos.rb
503
509
  - lib/lono/api/verify.rb
504
510
  - lib/lono/app.rb
511
+ - lib/lono/app/callable_option.rb
512
+ - lib/lono/app/callable_option/concern.rb
505
513
  - lib/lono/app/inits.rb
506
- - lib/lono/app_file/base.rb
507
- - lib/lono/app_file/build.rb
508
- - lib/lono/app_file/build/lambda_layer.rb
509
- - lib/lono/app_file/build/lambda_layer/ruby_packager.rb
510
- - lib/lono/app_file/registry.rb
511
- - lib/lono/app_file/registry/item.rb
512
- - lib/lono/app_file/upload.rb
513
514
  - lib/lono/autoloader.rb
514
515
  - lib/lono/aws_services.rb
515
516
  - lib/lono/aws_services/helper.rb
516
517
  - lib/lono/blueprint.rb
517
518
  - lib/lono/booter.rb
519
+ - lib/lono/builder.rb
520
+ - lib/lono/builder/allow.rb
521
+ - lib/lono/builder/allow/base.rb
522
+ - lib/lono/builder/allow/env.rb
523
+ - lib/lono/builder/allow/region.rb
524
+ - lib/lono/builder/configset/combiner.rb
525
+ - lib/lono/builder/configset/definition.rb
526
+ - lib/lono/builder/configset/definition/base.rb
527
+ - lib/lono/builder/configset/definition/context.rb
528
+ - lib/lono/builder/configset/definition/dsl.rb
529
+ - lib/lono/builder/configset/definition/dsl/syntax.rb
530
+ - lib/lono/builder/configset/definition/dsl/syntax/auth.rb
531
+ - lib/lono/builder/configset/definition/dsl/syntax/content.rb
532
+ - lib/lono/builder/configset/definition/dsl/syntax/core.rb
533
+ - lib/lono/builder/configset/definition/dsl/syntax/package.rb
534
+ - lib/lono/builder/configset/definition/erb.rb
535
+ - lib/lono/builder/configset/evaluator.rb
536
+ - lib/lono/builder/configset/registration.rb
518
537
  - lib/lono/builder/context.rb
519
- - lib/lono/builder/context/helpers.rb
520
- - lib/lono/builder/context/loader.rb
521
- - lib/lono/builder/context/loader/load_files.rb
522
- - lib/lono/builder/context/params.rb
523
- - lib/lono/builder/context/ssm_fetcher.rb
538
+ - lib/lono/builder/dsl.rb
539
+ - lib/lono/builder/dsl/evaluator.rb
540
+ - lib/lono/builder/dsl/finalizer.rb
541
+ - lib/lono/builder/dsl/finalizer/base.rb
542
+ - lib/lono/builder/dsl/finalizer/configsets.rb
543
+ - lib/lono/builder/dsl/finalizer/files.rb
544
+ - lib/lono/builder/dsl/finalizer/files/base.rb
545
+ - lib/lono/builder/dsl/finalizer/files/build.rb
546
+ - lib/lono/builder/dsl/finalizer/files/replace.rb
547
+ - lib/lono/builder/dsl/finalizer/parameter_groups.rb
548
+ - lib/lono/builder/dsl/helpers.rb
549
+ - lib/lono/builder/dsl/helpers/ec2.rb
550
+ - lib/lono/builder/dsl/helpers/files.rb
551
+ - lib/lono/builder/dsl/helpers/partials.rb
552
+ - lib/lono/builder/dsl/helpers/s3.rb
553
+ - lib/lono/builder/dsl/helpers/ssm.rb
554
+ - lib/lono/builder/dsl/helpers/ssm/fetcher.rb
555
+ - lib/lono/builder/dsl/helpers/stack.rb
556
+ - lib/lono/builder/dsl/helpers/tags.rb
557
+ - lib/lono/builder/dsl/helpers/template_file.rb
558
+ - lib/lono/builder/dsl/syntax.rb
559
+ - lib/lono/builder/dsl/syntax/core.rb
560
+ - lib/lono/builder/dsl/syntax/core/base.rb
561
+ - lib/lono/builder/dsl/syntax/core/condition.rb
562
+ - lib/lono/builder/dsl/syntax/core/mapping.rb
563
+ - lib/lono/builder/dsl/syntax/core/output.rb
564
+ - lib/lono/builder/dsl/syntax/core/parameter.rb
565
+ - lib/lono/builder/dsl/syntax/core/resource.rb
566
+ - lib/lono/builder/dsl/syntax/core/resource/property_mover.rb
567
+ - lib/lono/builder/dsl/syntax/core/section.rb
568
+ - lib/lono/builder/dsl/syntax/core/squeezer.rb
569
+ - lib/lono/builder/dsl/syntax/fn.rb
570
+ - lib/lono/builder/dsl/syntax/parameter_group.rb
524
571
  - lib/lono/builder/param.rb
525
572
  - lib/lono/builder/template.rb
526
573
  - lib/lono/builder/template/aws_service.rb
527
574
  - lib/lono/builder/template/bashify.rb
528
- - lib/lono/builder/template/configset_injector.rb
529
- - lib/lono/builder/template/dsl.rb
530
- - lib/lono/builder/template/dsl/evaluator.rb
531
- - lib/lono/builder/template/dsl/evaluator/fn.rb
532
- - lib/lono/builder/template/dsl/evaluator/helpers.rb
533
- - lib/lono/builder/template/dsl/evaluator/helpers/core_helper.rb
534
- - lib/lono/builder/template/dsl/evaluator/helpers/ec2_helper.rb
535
- - lib/lono/builder/template/dsl/evaluator/helpers/file_helper.rb
536
- - lib/lono/builder/template/dsl/evaluator/helpers/s3_helper.rb
537
- - lib/lono/builder/template/dsl/evaluator/helpers/stack_helper.rb
538
- - lib/lono/builder/template/dsl/evaluator/helpers/tags_helper.rb
539
- - lib/lono/builder/template/dsl/evaluator/section/base.rb
540
- - lib/lono/builder/template/dsl/evaluator/section/condition.rb
541
- - lib/lono/builder/template/dsl/evaluator/section/mapping.rb
542
- - lib/lono/builder/template/dsl/evaluator/section/methods.rb
543
- - lib/lono/builder/template/dsl/evaluator/section/output.rb
544
- - lib/lono/builder/template/dsl/evaluator/section/parameter.rb
545
- - lib/lono/builder/template/dsl/evaluator/section/resource.rb
546
- - lib/lono/builder/template/dsl/evaluator/section/resource/property_mover.rb
547
- - lib/lono/builder/template/dsl/evaluator/section/section.rb
548
- - lib/lono/builder/template/dsl/evaluator/squeezer.rb
549
- - lib/lono/builder/template/dsl/evaluator/stringify.rb
550
- - lib/lono/builder/template/dsl/evaluator/syntax.rb
551
- - lib/lono/builder/template/dsl/evaluator/syntax/extend_with.rb
552
- - lib/lono/builder/template/dsl/evaluator/syntax/parameter_group.rb
553
- - lib/lono/builder/template/dsl/finalizer.rb
554
- - lib/lono/builder/template/dsl/finalizer/parameter_groups.rb
555
- - lib/lono/builder/template/evaluate.rb
556
- - lib/lono/builder/template/helpers.rb
557
575
  - lib/lono/builder/template/output.rb
558
- - lib/lono/builder/template/post_processor.rb
559
576
  - lib/lono/builder/template/upload.rb
577
+ - lib/lono/builder/util/stringify.rb
560
578
  - lib/lono/bundler.rb
561
579
  - lib/lono/bundler/cli.rb
562
580
  - lib/lono/bundler/cli/base.rb
@@ -639,15 +657,12 @@ files:
639
657
  - lib/lono/cli.rb
640
658
  - lib/lono/cli/abstract.rb
641
659
  - lib/lono/cli/base.rb
642
- - lib/lono/cli/build.rb
643
660
  - lib/lono/cli/bundle.rb
644
661
  - lib/lono/cli/cfn.rb
645
662
  - lib/lono/cli/cfn/opts.rb
646
663
  - lib/lono/cli/clean.rb
647
- - lib/lono/cli/code.rb
648
664
  - lib/lono/cli/completion.rb
649
665
  - lib/lono/cli/help.rb
650
- - lib/lono/cli/help/blueprint/new.md
651
666
  - lib/lono/cli/help/build.md
652
667
  - lib/lono/cli/help/cfn.md
653
668
  - lib/lono/cli/help/cfn/cancel.md
@@ -660,6 +675,8 @@ files:
660
675
  - lib/lono/cli/help/completion_script.md
661
676
  - lib/lono/cli/help/configsets.md
662
677
  - lib/lono/cli/help/down.md
678
+ - lib/lono/cli/help/new/helper.md
679
+ - lib/lono/cli/help/new/hook.md
663
680
  - lib/lono/cli/help/new/project.md
664
681
  - lib/lono/cli/help/param.md
665
682
  - lib/lono/cli/help/param/generate.md
@@ -674,13 +691,14 @@ files:
674
691
  - lib/lono/cli/help/template/generate.md
675
692
  - lib/lono/cli/help/up.md
676
693
  - lib/lono/cli/help/user_data.md
694
+ - lib/lono/cli/iam.rb
677
695
  - lib/lono/cli/list.rb
678
696
  - lib/lono/cli/new.rb
679
697
  - lib/lono/cli/new/blueprint.rb
680
698
  - lib/lono/cli/new/concerns.rb
681
699
  - lib/lono/cli/new/configset.rb
682
- - lib/lono/cli/new/extension.rb
683
700
  - lib/lono/cli/new/helper.rb
701
+ - lib/lono/cli/new/hook.rb
684
702
  - lib/lono/cli/new/project.rb
685
703
  - lib/lono/cli/new/sequence.rb
686
704
  - lib/lono/cli/new/shim.rb
@@ -694,47 +712,43 @@ files:
694
712
  - lib/lono/cli/script/build.rb
695
713
  - lib/lono/cli/script/upload.rb
696
714
  - lib/lono/cli/seed.rb
715
+ - lib/lono/cli/status.rb
716
+ - lib/lono/cli/summary.rb
697
717
  - lib/lono/cli/test.rb
698
718
  - lib/lono/command.rb
699
719
  - lib/lono/completer.rb
700
720
  - lib/lono/completer/script.rb
701
721
  - lib/lono/completer/script.sh
702
- - lib/lono/configset/builder.rb
703
- - lib/lono/configset/combiner.rb
704
- - lib/lono/configset/evaluate_file.rb
705
- - lib/lono/configset/meta.rb
706
- - lib/lono/configset/meta/dsl.rb
707
- - lib/lono/configset/s3_file/build.rb
708
- - lib/lono/configset/s3_file/item.rb
709
- - lib/lono/configset/s3_file/registry.rb
710
- - lib/lono/configset/s3_file/upload.rb
711
- - lib/lono/configset/strategy/base.rb
712
- - lib/lono/configset/strategy/dsl.rb
713
- - lib/lono/configset/strategy/erb.rb
714
- - lib/lono/configset/strategy/helpers/dsl.rb
715
- - lib/lono/configset/strategy/helpers/dsl/auth.rb
716
- - lib/lono/configset/strategy/helpers/dsl/core.rb
717
- - lib/lono/configset/strategy/helpers/dsl/package.rb
718
- - lib/lono/configset/strategy/helpers/dsl/syntax.rb
719
- - lib/lono/configset/strategy/helpers/erb.rb
722
+ - lib/lono/component.rb
723
+ - lib/lono/concerns/aws_info.rb
724
+ - lib/lono/concerns/names.rb
725
+ - lib/lono/configset.rb
720
726
  - lib/lono/core.rb
721
- - lib/lono/extensions.rb
722
- - lib/lono/extensions/dsl.rb
723
- - lib/lono/extensions/loader.rb
727
+ - lib/lono/ext.rb
728
+ - lib/lono/ext/bundler.rb
729
+ - lib/lono/ext/core/module.rb
730
+ - lib/lono/ext/core/object.rb
731
+ - lib/lono/ext/core/string.rb
732
+ - lib/lono/files.rb
733
+ - lib/lono/files/base.rb
734
+ - lib/lono/files/builder.rb
735
+ - lib/lono/files/builder/lambda_layer.rb
736
+ - lib/lono/files/builder/lambda_layer/rsync.rb
737
+ - lib/lono/files/builder/lambda_layer/ruby_packager.rb
738
+ - lib/lono/files/builder/lambda_layer/ruby_version.rb
739
+ - lib/lono/files/compressor.rb
740
+ - lib/lono/files/concerns/post_processing.rb
741
+ - lib/lono/files/concerns/registration.rb
742
+ - lib/lono/files/registry.rb
743
+ - lib/lono/hooks/builder.rb
744
+ - lib/lono/hooks/concern.rb
745
+ - lib/lono/hooks/dsl.rb
746
+ - lib/lono/hooks/runner.rb
724
747
  - lib/lono/importer.rb
725
- - lib/lono/importer/base.rb
726
- - lib/lono/importer/converter.rb
727
- - lib/lono/importer/download.rb
728
- - lib/lono/importer/dsl.rb
729
- - lib/lono/importer/params.rb
730
- - lib/lono/importer/service/coder.rb
731
- - lib/lono/inspector/base.rb
732
- - lib/lono/inspector/summary.rb
733
748
  - lib/lono/layering.rb
734
749
  - lib/lono/layering/layer.rb
735
750
  - lib/lono/logger.rb
736
751
  - lib/lono/logger/formatter.rb
737
- - lib/lono/lookup.rb
738
752
  - lib/lono/md5.rb
739
753
  - lib/lono/names.rb
740
754
  - lib/lono/plugin.rb
@@ -743,20 +757,18 @@ files:
743
757
  - lib/lono/registration.rb
744
758
  - lib/lono/s3/aws_setup.rb
745
759
  - lib/lono/s3/bucket.rb
760
+ - lib/lono/s3/rollback.rb
746
761
  - lib/lono/s3/uploader.rb
747
762
  - lib/lono/script/base.rb
748
763
  - lib/lono/script/build.rb
749
764
  - lib/lono/script/upload.rb
750
765
  - lib/lono/seeder.rb
751
- - lib/lono/seeder/service_role.rb
752
766
  - lib/lono/user_data.rb
753
- - lib/lono/utils/context.rb
754
- - lib/lono/utils/item/file_methods.rb
755
- - lib/lono/utils/item/zip.rb
767
+ - lib/lono/utils.rb
756
768
  - lib/lono/utils/logging.rb
757
769
  - lib/lono/utils/pretty.rb
758
770
  - lib/lono/utils/quit.rb
759
- - lib/lono/utils/rsync.rb
771
+ - lib/lono/utils/sh.rb
760
772
  - lib/lono/utils/sure.rb
761
773
  - lib/lono/version.rb
762
774
  - lib/lono/yamler/loader.rb
@@ -764,15 +776,9 @@ files:
764
776
  - lib/templates/blueprint/template.rb
765
777
  - lib/templates/configset/configset.rb
766
778
  - lib/templates/examples/blueprint/template.rb
767
- - lib/templates/extension/lib/%extension_name%.rb.tt
768
- - lib/templates/extension/lib/%extension_name%/autoloader.rb.tt
769
- - lib/templates/extension/lib/%extension_name%/helpers/mappings.rb.tt
770
- - lib/templates/extension/lib/%extension_name%/helpers/outputs.rb.tt
771
- - lib/templates/extension/lib/%extension_name%/helpers/parameters.rb.tt
772
- - lib/templates/extension/lib/%extension_name%/helpers/resources/resource.rb.tt
773
- - lib/templates/extension/lib/%extension_name%/helpers/variables.rb.tt
774
- - lib/templates/extension/lib/%extension_name%/version.rb.tt
779
+ - lib/templates/examples/configset/configset.rb
775
780
  - lib/templates/helper/%underscore_name%_helper.rb.tt
781
+ - lib/templates/hook/config/hooks.rb.tt
776
782
  - lib/templates/project/.gitignore
777
783
  - lib/templates/project/Gemfile.tt
778
784
  - lib/templates/project/README.md
@@ -1,28 +0,0 @@
1
- # Naming AppFile instead of File so we dont to use ::File for normal regular File class
2
- module Lono::AppFile
3
- class Base < Lono::CLI::Base
4
- # What's needed for a Thor::Group or "Sequence". Gives us Thor::Actions commands like create_file
5
- # Must be included before `def initialize` as we override the Thor initialize
6
- include Thor::Actions
7
- include Thor::Base
8
- # Override Thor::Base initialize
9
- def initialize(options={})
10
- reinitialize(options)
11
- initialize_variables
12
- end
13
-
14
- def initialize_variables
15
- end
16
-
17
- private
18
- # Hack Thor to be able to dynamically set the source_paths at runtime instance methods
19
- def override_source_paths(*paths)
20
- # Using string with instance_eval because block doesnt have access to path at runtime.
21
- self.class.instance_eval %{
22
- def self.source_paths
23
- #{paths.flatten.inspect}
24
- end
25
- }
26
- end
27
- end
28
- end
@@ -1,20 +0,0 @@
1
- class Lono::AppFile::Build
2
- class LambdaLayer
3
- def initialize(blueprint, registry_item)
4
- @blueprint.name, @registry_item = blueprint, registry_item
5
- end
6
-
7
- def build
8
- lang = @registry_item.options[:lang]
9
- unless lang =~ /ruby/
10
- logger.info "WARN: Currently only support ruby lambda layers".color(:yellow)
11
- return
12
- end
13
-
14
- klass_name = "Lono::AppFile::Build::LambdaLayer::#{lang.camelize}Packager"
15
- klass = klass_name.constantize
16
- packager = klass.new(@blueprint.name, @registry_item)
17
- packager.build
18
- end
19
- end
20
- end