lono 8.0.0.pre.rc2 → 8.0.0.pre.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +84 -0
  3. data/.github/ISSUE_TEMPLATE/documentation.md +12 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +64 -0
  5. data/.github/ISSUE_TEMPLATE/question.md +14 -0
  6. data/.github/ISSUE_TEMPLATE.md +7 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +50 -0
  8. data/CHANGELOG.md +56 -2
  9. data/Gemfile +1 -3
  10. data/lib/lono/app/callable_option/concern.rb +12 -0
  11. data/lib/lono/app/callable_option.rb +56 -0
  12. data/lib/lono/app.rb +56 -23
  13. data/lib/lono/autoloader.rb +1 -0
  14. data/lib/lono/aws_services/helper.rb +0 -2
  15. data/lib/lono/blueprint.rb +1 -18
  16. data/lib/lono/builder/allow/base.rb +54 -0
  17. data/lib/lono/builder/allow/env.rb +17 -0
  18. data/lib/lono/builder/allow/region.rb +20 -0
  19. data/lib/lono/builder/allow.rb +8 -0
  20. data/lib/lono/builder/configset/combiner.rb +145 -0
  21. data/lib/lono/builder/configset/definition/base.rb +47 -0
  22. data/lib/lono/builder/configset/definition/context.rb +70 -0
  23. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/auth.rb +1 -1
  24. data/lib/lono/builder/configset/definition/dsl/syntax/content.rb +22 -0
  25. data/lib/lono/{configset/strategy/helpers/dsl/syntax.rb → builder/configset/definition/dsl/syntax/core.rb} +15 -9
  26. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/package.rb +1 -1
  27. data/lib/lono/builder/configset/definition/dsl/syntax.rb +5 -0
  28. data/lib/lono/{configset/strategy → builder/configset/definition}/dsl.rb +10 -14
  29. data/lib/lono/{configset/strategy → builder/configset/definition}/erb.rb +13 -16
  30. data/lib/lono/builder/configset/definition.rb +18 -0
  31. data/lib/lono/builder/configset/evaluator.rb +10 -0
  32. data/lib/lono/builder/configset/registration.rb +35 -0
  33. data/lib/lono/builder/context.rb +40 -0
  34. data/lib/lono/builder/dsl/evaluator.rb +6 -55
  35. data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
  36. data/lib/lono/builder/dsl/finalizer/configsets.rb +7 -28
  37. data/lib/lono/builder/dsl/finalizer/files/base.rb +4 -0
  38. data/lib/lono/builder/dsl/finalizer/files/build.rb +50 -0
  39. data/lib/lono/builder/dsl/finalizer/files/replace.rb +36 -0
  40. data/lib/lono/builder/dsl/finalizer/files.rb +9 -0
  41. data/lib/lono/builder/dsl/finalizer/parameter_groups.rb +4 -3
  42. data/lib/lono/builder/dsl/finalizer.rb +4 -2
  43. data/lib/lono/builder/dsl/helpers/ec2.rb +16 -3
  44. data/lib/lono/builder/dsl/helpers/files.rb +7 -0
  45. data/lib/lono/builder/dsl/helpers/partials.rb +48 -53
  46. data/lib/lono/builder/dsl/helpers/s3.rb +5 -7
  47. data/lib/lono/builder/dsl/helpers/ssm/fetcher.rb +3 -1
  48. data/lib/lono/builder/dsl/helpers/stack.rb +2 -4
  49. data/lib/lono/builder/dsl/helpers/template_file.rb +23 -29
  50. data/lib/lono/builder/dsl/helpers.rb +1 -11
  51. data/lib/lono/builder/dsl/syntax/core/resource/property_mover.rb +11 -1
  52. data/lib/lono/builder/dsl/syntax/core/squeezer.rb +19 -3
  53. data/lib/lono/builder/dsl/syntax/fn.rb +0 -2
  54. data/lib/lono/builder/dsl.rb +2 -2
  55. data/lib/lono/builder/param.rb +7 -2
  56. data/lib/lono/builder/template/upload.rb +2 -15
  57. data/lib/lono/builder/template.rb +1 -3
  58. data/lib/lono/builder.rb +39 -0
  59. data/lib/lono/bundler/util/git.rb +18 -16
  60. data/lib/lono/cfn/base.rb +2 -2
  61. data/lib/lono/cfn/cancel.rb +5 -5
  62. data/lib/lono/cfn/concerns/build.rb +1 -1
  63. data/lib/lono/cfn/delete.rb +5 -2
  64. data/lib/lono/cfn/deploy/iam.rb +1 -1
  65. data/lib/lono/cfn/deploy/operable.rb +1 -1
  66. data/lib/lono/cfn/deploy/rollback.rb +1 -3
  67. data/lib/lono/cfn/deploy.rb +23 -5
  68. data/lib/lono/cfn/download.rb +0 -1
  69. data/lib/lono/cfn/plan/changeset.rb +3 -3
  70. data/lib/lono/cfn/plan/diff/data.rb +11 -1
  71. data/lib/lono/cfn/plan/param.rb +1 -1
  72. data/lib/lono/cfn/plan/template.rb +2 -2
  73. data/lib/lono/cfn/plan.rb +26 -0
  74. data/lib/lono/cli/abstract.rb +0 -6
  75. data/lib/lono/cli/base.rb +6 -3
  76. data/lib/lono/cli/clean.rb +3 -2
  77. data/lib/lono/cli/help/new/helper.md +27 -0
  78. data/lib/lono/cli/help/new/hook.md +14 -0
  79. data/lib/lono/cli/help/new/project.md +3 -10
  80. data/lib/lono/cli/iam.rb +27 -0
  81. data/lib/lono/cli/list.rb +3 -6
  82. data/lib/lono/cli/new/blueprint.rb +3 -9
  83. data/lib/lono/cli/new/configset.rb +11 -44
  84. data/lib/lono/cli/new/helper.rb +19 -11
  85. data/lib/lono/cli/new/hook.rb +32 -0
  86. data/lib/lono/cli/new/sequence.rb +6 -1
  87. data/lib/lono/cli/new.rb +9 -9
  88. data/lib/lono/cli/script/build.rb +0 -5
  89. data/lib/lono/cli/status.rb +18 -0
  90. data/lib/lono/{inspector → cli}/summary.rb +23 -33
  91. data/lib/lono/cli.rb +15 -16
  92. data/lib/lono/command.rb +28 -2
  93. data/lib/lono/component.rb +29 -0
  94. data/lib/lono/concerns/aws_info.rb +14 -0
  95. data/lib/lono/concerns/names.rb +9 -0
  96. data/lib/lono/configset.rb +17 -0
  97. data/lib/lono/core.rb +11 -1
  98. data/lib/lono/ext/bundler.rb +7 -0
  99. data/lib/lono/ext/core/module.rb +31 -0
  100. data/lib/lono/ext/core/object.rb +32 -0
  101. data/lib/lono/ext/core/string.rb +9 -0
  102. data/lib/lono/ext.rb +4 -0
  103. data/lib/lono/files/base.rb +12 -0
  104. data/lib/lono/{utils → files/builder/lambda_layer}/rsync.rb +3 -5
  105. data/lib/lono/{app_file/build → files/builder}/lambda_layer/ruby_packager.rb +104 -79
  106. data/lib/lono/files/builder/lambda_layer/ruby_version.rb +38 -0
  107. data/lib/lono/files/builder/lambda_layer.rb +17 -0
  108. data/lib/lono/files/builder.rb +37 -0
  109. data/lib/lono/files/compressor.rb +53 -0
  110. data/lib/lono/files/concerns/post_processing.rb +52 -0
  111. data/lib/lono/files/concerns/registration.rb +16 -0
  112. data/lib/lono/files/registry.rb +6 -0
  113. data/lib/lono/files.rb +41 -0
  114. data/lib/lono/hooks/builder.rb +50 -0
  115. data/lib/lono/hooks/concern.rb +9 -0
  116. data/lib/lono/hooks/dsl.rb +20 -0
  117. data/lib/lono/hooks/runner.rb +46 -0
  118. data/lib/lono/layering/layer.rb +64 -56
  119. data/lib/lono/logger.rb +1 -3
  120. data/lib/lono/names.rb +7 -10
  121. data/lib/lono/s3/bucket.rb +17 -11
  122. data/lib/lono/s3/uploader.rb +33 -28
  123. data/lib/lono/script/build.rb +0 -5
  124. data/lib/lono/seeder.rb +19 -28
  125. data/lib/lono/user_data.rb +3 -1
  126. data/lib/lono/utils/call_line.rb +9 -0
  127. data/lib/lono/utils/sh.rb +32 -0
  128. data/lib/lono/utils.rb +5 -0
  129. data/lib/lono/version.rb +1 -1
  130. data/lib/lono/yamler/validator.rb +7 -22
  131. data/lib/lono.rb +8 -0
  132. data/lib/templates/configset/configset.rb +2 -16
  133. data/lib/templates/examples/configset/configset.rb +16 -0
  134. data/lib/templates/helper/%underscore_name%_helper.rb.tt +1 -1
  135. data/lib/templates/hook/config/hooks.rb.tt +14 -0
  136. data/lib/templates/project/Gemfile.tt +2 -7
  137. data/lono.gemspec +1 -1
  138. metadata +73 -62
  139. data/lib/lono/app_file/base.rb +0 -28
  140. data/lib/lono/app_file/build/lambda_layer.rb +0 -20
  141. data/lib/lono/app_file/build.rb +0 -79
  142. data/lib/lono/app_file/registry/item.rb +0 -24
  143. data/lib/lono/app_file/registry.rb +0 -16
  144. data/lib/lono/app_file/upload.rb +0 -12
  145. data/lib/lono/builder/context/generic.rb +0 -11
  146. data/lib/lono/builder/context/loaders/load_files.rb +0 -23
  147. data/lib/lono/builder/context/loaders.rb +0 -35
  148. data/lib/lono/builder/context/params.rb +0 -6
  149. data/lib/lono/builder/context/template.rb +0 -4
  150. data/lib/lono/builder/template/post_processor.rb +0 -67
  151. data/lib/lono/cli/build.rb +0 -91
  152. data/lib/lono/cli/code.rb +0 -22
  153. data/lib/lono/cli/help/blueprint/new.md +0 -56
  154. data/lib/lono/cli/new/extension.rb +0 -57
  155. data/lib/lono/configset/builder.rb +0 -59
  156. data/lib/lono/configset/combiner.rb +0 -164
  157. data/lib/lono/configset/evaluate_file.rb +0 -8
  158. data/lib/lono/configset/meta/dsl.rb +0 -12
  159. data/lib/lono/configset/meta.rb +0 -19
  160. data/lib/lono/configset/s3_file/build.rb +0 -34
  161. data/lib/lono/configset/s3_file/item.rb +0 -38
  162. data/lib/lono/configset/s3_file/registry.rb +0 -12
  163. data/lib/lono/configset/s3_file/upload.rb +0 -12
  164. data/lib/lono/configset/strategy/base.rb +0 -83
  165. data/lib/lono/configset/strategy/helpers/dsl/core.rb +0 -18
  166. data/lib/lono/configset/strategy/helpers/dsl.rb +0 -8
  167. data/lib/lono/configset/strategy/helpers/erb.rb +0 -9
  168. data/lib/lono/importer/base.rb +0 -48
  169. data/lib/lono/importer/converter.rb +0 -19
  170. data/lib/lono/importer/download.rb +0 -46
  171. data/lib/lono/importer/dsl.rb +0 -36
  172. data/lib/lono/importer/params.rb +0 -56
  173. data/lib/lono/importer/service/coder.rb +0 -85
  174. data/lib/lono/inspector/base.rb +0 -32
  175. data/lib/lono/lookup.rb +0 -12
  176. data/lib/lono/seeder/service_role.rb +0 -11
  177. data/lib/lono/utils/contexts.rb +0 -15
  178. data/lib/lono/utils/item/file_methods.rb +0 -29
  179. data/lib/lono/utils/item/zip.rb +0 -42
  180. data/lib/templates/extension/lib/%extension_name%/autoloader.rb.tt +0 -23
  181. data/lib/templates/extension/lib/%extension_name%/helpers/mappings.rb.tt +0 -24
  182. data/lib/templates/extension/lib/%extension_name%/helpers/outputs.rb.tt +0 -7
  183. data/lib/templates/extension/lib/%extension_name%/helpers/parameters.rb.tt +0 -10
  184. data/lib/templates/extension/lib/%extension_name%/helpers/resources/resource.rb.tt +0 -4
  185. data/lib/templates/extension/lib/%extension_name%/helpers/variables.rb.tt +0 -6
  186. data/lib/templates/extension/lib/%extension_name%/version.rb.tt +0 -3
  187. data/lib/templates/extension/lib/%extension_name%.rb.tt +0 -8
@@ -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
+ )
@@ -2,10 +2,5 @@ source "https://rubygems.org"
2
2
 
3
3
  # gem "lono", "~> <%= Lono::VERSION %>"
4
4
 
5
- if ENV['C9_USER']
6
- gem "lono", path: "~/boltops-tools/lono"
7
- gem "rspec-lono", path: "~/boltops-tools/rspec-lono"
8
- else
9
- gem "lono", git: "https://github.com/boltops-tools/lono", branch: "v8"
10
- gem "rspec-lono", git: "https://github.com/boltops-tools/rspec-lono", branch: "master"
11
- end
5
+ gem "lono", git: "https://github.com/boltops-tools/lono", branch: "master"
6
+ gem "rspec-lono", git: "https://github.com/boltops-tools/rspec-lono", branch: "master"
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.rc2
4
+ version: 8.0.0.pre.rc5
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-23 00:00:00.000000000 Z
11
+ date: 2022-04-29 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,31 +508,46 @@ 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
518
- - lib/lono/builder/context/generic.rb
519
- - lib/lono/builder/context/loaders.rb
520
- - lib/lono/builder/context/loaders/load_files.rb
521
- - lib/lono/builder/context/params.rb
522
- - lib/lono/builder/context/template.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
537
+ - lib/lono/builder/context.rb
523
538
  - lib/lono/builder/dsl.rb
524
539
  - lib/lono/builder/dsl/evaluator.rb
525
540
  - lib/lono/builder/dsl/finalizer.rb
541
+ - lib/lono/builder/dsl/finalizer/base.rb
526
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
527
547
  - lib/lono/builder/dsl/finalizer/parameter_groups.rb
528
548
  - lib/lono/builder/dsl/helpers.rb
529
549
  - lib/lono/builder/dsl/helpers/ec2.rb
550
+ - lib/lono/builder/dsl/helpers/files.rb
530
551
  - lib/lono/builder/dsl/helpers/partials.rb
531
552
  - lib/lono/builder/dsl/helpers/s3.rb
532
553
  - lib/lono/builder/dsl/helpers/ssm.rb
@@ -552,7 +573,6 @@ files:
552
573
  - lib/lono/builder/template/aws_service.rb
553
574
  - lib/lono/builder/template/bashify.rb
554
575
  - lib/lono/builder/template/output.rb
555
- - lib/lono/builder/template/post_processor.rb
556
576
  - lib/lono/builder/template/upload.rb
557
577
  - lib/lono/builder/util/stringify.rb
558
578
  - lib/lono/bundler.rb
@@ -637,15 +657,12 @@ files:
637
657
  - lib/lono/cli.rb
638
658
  - lib/lono/cli/abstract.rb
639
659
  - lib/lono/cli/base.rb
640
- - lib/lono/cli/build.rb
641
660
  - lib/lono/cli/bundle.rb
642
661
  - lib/lono/cli/cfn.rb
643
662
  - lib/lono/cli/cfn/opts.rb
644
663
  - lib/lono/cli/clean.rb
645
- - lib/lono/cli/code.rb
646
664
  - lib/lono/cli/completion.rb
647
665
  - lib/lono/cli/help.rb
648
- - lib/lono/cli/help/blueprint/new.md
649
666
  - lib/lono/cli/help/build.md
650
667
  - lib/lono/cli/help/cfn.md
651
668
  - lib/lono/cli/help/cfn/cancel.md
@@ -658,6 +675,8 @@ files:
658
675
  - lib/lono/cli/help/completion_script.md
659
676
  - lib/lono/cli/help/configsets.md
660
677
  - lib/lono/cli/help/down.md
678
+ - lib/lono/cli/help/new/helper.md
679
+ - lib/lono/cli/help/new/hook.md
661
680
  - lib/lono/cli/help/new/project.md
662
681
  - lib/lono/cli/help/param.md
663
682
  - lib/lono/cli/help/param/generate.md
@@ -672,13 +691,14 @@ files:
672
691
  - lib/lono/cli/help/template/generate.md
673
692
  - lib/lono/cli/help/up.md
674
693
  - lib/lono/cli/help/user_data.md
694
+ - lib/lono/cli/iam.rb
675
695
  - lib/lono/cli/list.rb
676
696
  - lib/lono/cli/new.rb
677
697
  - lib/lono/cli/new/blueprint.rb
678
698
  - lib/lono/cli/new/concerns.rb
679
699
  - lib/lono/cli/new/configset.rb
680
- - lib/lono/cli/new/extension.rb
681
700
  - lib/lono/cli/new/helper.rb
701
+ - lib/lono/cli/new/hook.rb
682
702
  - lib/lono/cli/new/project.rb
683
703
  - lib/lono/cli/new/sequence.rb
684
704
  - lib/lono/cli/new/shim.rb
@@ -692,44 +712,43 @@ files:
692
712
  - lib/lono/cli/script/build.rb
693
713
  - lib/lono/cli/script/upload.rb
694
714
  - lib/lono/cli/seed.rb
715
+ - lib/lono/cli/status.rb
716
+ - lib/lono/cli/summary.rb
695
717
  - lib/lono/cli/test.rb
696
718
  - lib/lono/command.rb
697
719
  - lib/lono/completer.rb
698
720
  - lib/lono/completer/script.rb
699
721
  - lib/lono/completer/script.sh
700
- - lib/lono/configset/builder.rb
701
- - lib/lono/configset/combiner.rb
702
- - lib/lono/configset/evaluate_file.rb
703
- - lib/lono/configset/meta.rb
704
- - lib/lono/configset/meta/dsl.rb
705
- - lib/lono/configset/s3_file/build.rb
706
- - lib/lono/configset/s3_file/item.rb
707
- - lib/lono/configset/s3_file/registry.rb
708
- - lib/lono/configset/s3_file/upload.rb
709
- - lib/lono/configset/strategy/base.rb
710
- - lib/lono/configset/strategy/dsl.rb
711
- - lib/lono/configset/strategy/erb.rb
712
- - lib/lono/configset/strategy/helpers/dsl.rb
713
- - lib/lono/configset/strategy/helpers/dsl/auth.rb
714
- - lib/lono/configset/strategy/helpers/dsl/core.rb
715
- - lib/lono/configset/strategy/helpers/dsl/package.rb
716
- - lib/lono/configset/strategy/helpers/dsl/syntax.rb
717
- - 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
718
726
  - lib/lono/core.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
719
747
  - lib/lono/importer.rb
720
- - lib/lono/importer/base.rb
721
- - lib/lono/importer/converter.rb
722
- - lib/lono/importer/download.rb
723
- - lib/lono/importer/dsl.rb
724
- - lib/lono/importer/params.rb
725
- - lib/lono/importer/service/coder.rb
726
- - lib/lono/inspector/base.rb
727
- - lib/lono/inspector/summary.rb
728
748
  - lib/lono/layering.rb
729
749
  - lib/lono/layering/layer.rb
730
750
  - lib/lono/logger.rb
731
751
  - lib/lono/logger/formatter.rb
732
- - lib/lono/lookup.rb
733
752
  - lib/lono/md5.rb
734
753
  - lib/lono/names.rb
735
754
  - lib/lono/plugin.rb
@@ -744,15 +763,13 @@ files:
744
763
  - lib/lono/script/build.rb
745
764
  - lib/lono/script/upload.rb
746
765
  - lib/lono/seeder.rb
747
- - lib/lono/seeder/service_role.rb
748
766
  - lib/lono/user_data.rb
749
- - lib/lono/utils/contexts.rb
750
- - lib/lono/utils/item/file_methods.rb
751
- - lib/lono/utils/item/zip.rb
767
+ - lib/lono/utils.rb
768
+ - lib/lono/utils/call_line.rb
752
769
  - lib/lono/utils/logging.rb
753
770
  - lib/lono/utils/pretty.rb
754
771
  - lib/lono/utils/quit.rb
755
- - lib/lono/utils/rsync.rb
772
+ - lib/lono/utils/sh.rb
756
773
  - lib/lono/utils/sure.rb
757
774
  - lib/lono/version.rb
758
775
  - lib/lono/yamler/loader.rb
@@ -760,15 +777,9 @@ files:
760
777
  - lib/templates/blueprint/template.rb
761
778
  - lib/templates/configset/configset.rb
762
779
  - lib/templates/examples/blueprint/template.rb
763
- - lib/templates/extension/lib/%extension_name%.rb.tt
764
- - lib/templates/extension/lib/%extension_name%/autoloader.rb.tt
765
- - lib/templates/extension/lib/%extension_name%/helpers/mappings.rb.tt
766
- - lib/templates/extension/lib/%extension_name%/helpers/outputs.rb.tt
767
- - lib/templates/extension/lib/%extension_name%/helpers/parameters.rb.tt
768
- - lib/templates/extension/lib/%extension_name%/helpers/resources/resource.rb.tt
769
- - lib/templates/extension/lib/%extension_name%/helpers/variables.rb.tt
770
- - lib/templates/extension/lib/%extension_name%/version.rb.tt
780
+ - lib/templates/examples/configset/configset.rb
771
781
  - lib/templates/helper/%underscore_name%_helper.rb.tt
782
+ - lib/templates/hook/config/hooks.rb.tt
772
783
  - lib/templates/project/.gitignore
773
784
  - lib/templates/project/Gemfile.tt
774
785
  - lib/templates/project/README.md
@@ -797,7 +808,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
797
808
  - !ruby/object:Gem::Version
798
809
  version: 1.3.1
799
810
  requirements: []
800
- rubygems_version: 3.2.32
811
+ rubygems_version: 3.3.12
801
812
  signing_key:
802
813
  specification_version: 4
803
814
  summary: 'Lono: The CloudFormation Framework'
@@ -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
@@ -1,79 +0,0 @@
1
- require "thor"
2
-
3
- module Lono::AppFile
4
- class Build < Base
5
- include Lono::Utils::Item::Zip
6
-
7
- def initialize_variables
8
- @output_files_path = "#{Lono.root}/output/#{@blueprint.name}/files"
9
- end
10
-
11
- def run
12
- return unless detect_files?
13
- logger.info "Building app/files"
14
- build_all
15
- end
16
-
17
- def build_all
18
- clean_output
19
- validate_files!
20
- copy_to_output
21
- build_layers
22
- compress_output
23
- end
24
-
25
- def validate_files!
26
- items = Registry.items + Registry.layers
27
- missing = items.select do |item|
28
- !File.exist?(item.src_path)
29
- end
30
- missing_paths = missing.map { |item| item.src_path }.uniq
31
- unless missing_paths.empty?
32
- logger.info "ERROR: These app/files are missing were used by the s3_key method but are missing".color(:red)
33
- missing_paths.each do |path|
34
- logger.info " #{path}"
35
- end
36
- logger.info "Please double check that they exist."
37
- exit 1
38
- end
39
- end
40
-
41
- def build_layers
42
- layer_items = Registry.layers
43
- layer_items.each do |item|
44
- LambdaLayer.new(@blueprint, item).build
45
- end
46
- end
47
-
48
- def compress_output
49
- Registry.items.each do |item|
50
- # type can be lambda_layer or file
51
- if item.type == "lambda_layer" || item.exist?
52
- zip(item)
53
- else
54
- logger.info "WARN: #{item.src_path} does not exist. Double check that the path is correct in the s3_key call.".color(:yellow)
55
- end
56
- end
57
- end
58
-
59
- def copy_to_output
60
- override_source_paths("#{@blueprint.root}/app/files")
61
- self.destination_root = @output_files_path
62
- directory(".", verbose: false, context: template_context.get_binding) # Thor::Action
63
- end
64
-
65
- def clean_output
66
- FileUtils.rm_rf(@output_files_path)
67
- end
68
-
69
- def detect_files?
70
- app_files = Dir["#{@blueprint.root}/app/files/*"]
71
- if app_files.empty?
72
- false
73
- else
74
- logger.info "Detected app/files"
75
- true
76
- end
77
- end
78
- end
79
- end
@@ -1,24 +0,0 @@
1
- class Lono::AppFile::Registry
2
- # Holds metadata about the item in the regsitry.
3
- class Item
4
- include Lono::Utils::Item::FileMethods
5
-
6
- attr_reader :name, :options, :type
7
- def initialize(name, blueprint, options={})
8
- @name, @blueprint.name, @options = name, blueprint, options
9
- @type = options[:type] || "file"
10
- end
11
-
12
- def src_path
13
- "#{@blueprint.root}/app/files/#{@name}"
14
- end
15
-
16
- def output_path
17
- if @type == "file"
18
- "#{Lono.root}/output/#{@blueprint.name}/files/#{@name}"
19
- else
20
- "#{Lono.root}/output/#{@blueprint.name}/lambda_layers/#{@name}/opt"
21
- end
22
- end
23
- end
24
- end
@@ -1,16 +0,0 @@
1
- module Lono::AppFile
2
- class Registry
3
- cattr_reader :items
4
- @@items = []
5
-
6
- class << self
7
- def register(name, blueprint, options={})
8
- @@items << Item.new(name, blueprint, options) unless @@items.detect { |i| i.name == name && i.type == options[:type] }
9
- end
10
-
11
- def layers
12
- @@items.select { |i| i.type == "lambda_layer" }
13
- end
14
- end
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- module Lono::AppFile
2
- class Upload < Base
3
- def upload
4
- return unless Registry.items.size > 0
5
- logger.info "Uploading app/files..."
6
-
7
- Registry.items.each do |item|
8
- Lono::S3::Uploader.new(item.zip_file_path).upload
9
- end
10
- end
11
- end
12
- end
@@ -1,11 +0,0 @@
1
- module Lono::Builder::Context
2
- class Generic < Lono::CLI::Base
3
- include Lono::Builder::Dsl::Syntax
4
-
5
- # For Lono::AppFile::Build usage of Thor::Action directory
6
- # For some reason a send(:binding) doesnt work but get_binding like this works.
7
- def get_binding
8
- binding
9
- end
10
- end
11
- end
@@ -1,23 +0,0 @@
1
- module Lono::Builder::Context::Loaders
2
- module LoadFiles
3
- # Load custom helper methods from project
4
- def load_files(dir)
5
- paths = Dir.glob("#{dir}/**/*.rb")
6
- paths.sort_by! { |p| p.size } # so namespaces are loaded first
7
- paths.each do |path|
8
- # helpers = blueprint or project extensions
9
- filename = path.sub(%r{.*/helpers/},'').sub('.rb','')
10
- module_name = filename.camelize
11
-
12
- # Prepend a period so require works LONO_ROOT is set to a relative path without a period.
13
- #
14
- # Example: LONO_ROOT=tmp/lono_project
15
- first_char = path[0..0]
16
- path = "./#{path}" unless %w[. /].include?(first_char)
17
-
18
- require path
19
- self.class.send :include, module_name.constantize
20
- end
21
- end
22
- end
23
- end
@@ -1,35 +0,0 @@
1
- module Lono::Builder::Context
2
- module Loaders
3
- include LoadFiles
4
-
5
- # Variables in base.rb are overridden by their environment specific variables
6
- # file. Example, file LONO_ENV=dev:
7
- #
8
- # config/vars/base.rb
9
- # config/vars/dev.rb - will override any variables in base.rb
10
- # config/vars/base.rb
11
- # config/vars/dev.rb - will override any variables in base.rb
12
- #
13
- def load_variables
14
- layers = Lono::Layering::Layer.new(@blueprint, "vars").paths
15
- layers.each do |layer|
16
- evaluate_variables_file(layer)
17
- end
18
- end
19
-
20
- # Load the variables defined in config/vars/* to make available in lono scope.
21
- #
22
- # NOTE: Was only able to make instance variables avaialble with instance_eval, wasnt able to make local variables
23
- # available.
24
- def evaluate_variables_file(path)
25
- return unless File.exist?(path)
26
- instance_eval(IO.read(path), path)
27
- end
28
-
29
- # Load blueprint helpers
30
- # blueprint helpers override extension helpers
31
- def load_blueprint_helpers
32
- load_files("#{@blueprint.root}/#{Lono.config.paths.helpers}")
33
- end
34
- end
35
- end
@@ -1,6 +0,0 @@
1
- module Lono::Builder::Context
2
- class Params < Generic
3
- # Overriding output resource DSL method
4
- alias_method :output, :stack_output
5
- end
6
- end
@@ -1,4 +0,0 @@
1
- module Lono::Builder::Context
2
- class Template < Generic
3
- end
4
- end
@@ -1,67 +0,0 @@
1
- class Lono::Builder::Template
2
- class PostProcessor < Lono::CLI::Base
3
- def run
4
- replacements.each do |placeholder, replacement|
5
- update_template!(template)
6
- end
7
- write_template!
8
- end
9
-
10
- def write_template!
11
- IO.write(template_path, YAML.dump(template)) # unless ENV['LONO_TEST'] # additional safeguard for testing
12
- end
13
-
14
- def replacements
15
- map = {}
16
-
17
- registry_items.each do |item|
18
- if item.type == "lambda_layer"
19
- placeholder = "file://app/files/lambda_layer/#{item.name}"
20
- elsif item.directory? || item.file?
21
- placeholder = "file://app/files/file/#{item.name}"
22
- else
23
- logger.info "WARN: PostProcessor replacements Cannot find file: #{item.output_path}"
24
- next
25
- end
26
- map[placeholder] = item.s3_path
27
- end
28
-
29
- Lono::Configset::S3File::Registry.items.each do |item|
30
- placeholder = "file://configset/#{item.configset}/#{item.name}"
31
- # map[placeholder] = "https://s3.amazonaws.com/#{Lono::S3::Bucket.name}/#{item.s3_path}"
32
- map[placeholder] = item.replacement_value
33
- end
34
-
35
- map
36
- end
37
-
38
- def update_template!(hash)
39
- hash.each do |k, v|
40
- if v.is_a?(String)
41
- if v =~ %r{^file://}
42
- v.replace(replacements[v]) # replace the placeholder
43
- end
44
- elsif v.is_a?(Hash)
45
- update_template!(v) # recurse
46
- elsif v.is_a?(Array)
47
- v.each { |x| update_template!(x) if x.is_a?(Hash) }
48
- end
49
- end
50
- hash
51
- end
52
-
53
- # Useful for specs
54
- def registry_items
55
- Lono::AppFile::Registry.items
56
- end
57
-
58
- def template
59
- YAML.load_file(template_path)
60
- end
61
- memoize :template
62
-
63
- def template_path
64
- "#{Lono.root}/output/#{@blueprint.name}/templates/#{@template}.yml"
65
- end
66
- end
67
- end