lono 7.5.2 → 8.0.0.pre.rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. checksums.yaml +4 -4
  2. data/.cody/README.md +5 -15
  3. data/.cody/acceptance/bin/build.sh +52 -0
  4. data/.cody/acceptance/buildspec.yml +10 -0
  5. data/.cody/acceptance/project.rb +6 -0
  6. data/.cody/{role.rb → acceptance/role.rb} +0 -0
  7. data/.cody/shared/script/install/lono.sh +40 -0
  8. data/.cody/shared/script/install.sh +5 -0
  9. data/CHANGELOG.md +46 -5
  10. data/CONTRIBUTING.md +2 -2
  11. data/Gemfile +3 -1
  12. data/LICENSE.txt +201 -1
  13. data/README.md +6 -11
  14. data/lib/lono/api/client.rb +3 -2
  15. data/lib/lono/app/callable_option/concern.rb +12 -0
  16. data/lib/lono/app/callable_option.rb +56 -0
  17. data/lib/lono/app/inits.rb +13 -0
  18. data/lib/lono/app.rb +73 -0
  19. data/lib/lono/autoloader.rb +3 -2
  20. data/lib/lono/aws_services/helper.rb +41 -6
  21. data/lib/lono/aws_services.rb +37 -6
  22. data/lib/lono/blueprint.rb +3 -11
  23. data/lib/lono/booter.rb +28 -0
  24. data/lib/lono/builder/allow/base.rb +54 -0
  25. data/lib/lono/builder/allow/env.rb +17 -0
  26. data/lib/lono/builder/allow/region.rb +20 -0
  27. data/lib/lono/builder/allow.rb +8 -0
  28. data/lib/lono/builder/configset/combiner.rb +145 -0
  29. data/lib/lono/builder/configset/definition/base.rb +47 -0
  30. data/lib/lono/builder/configset/definition/context.rb +29 -0
  31. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/auth.rb +1 -1
  32. data/lib/lono/{configset/strategy/helpers/dsl/core.rb → builder/configset/definition/dsl/syntax/content.rb} +11 -3
  33. data/lib/lono/{configset/strategy/helpers/dsl/syntax.rb → builder/configset/definition/dsl/syntax/core.rb} +15 -9
  34. data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/package.rb +1 -1
  35. data/lib/lono/builder/configset/definition/dsl/syntax.rb +5 -0
  36. data/lib/lono/{configset/strategy → builder/configset/definition}/dsl.rb +10 -14
  37. data/lib/lono/{configset/strategy → builder/configset/definition}/erb.rb +13 -16
  38. data/lib/lono/builder/configset/definition.rb +18 -0
  39. data/lib/lono/builder/configset/evaluator.rb +10 -0
  40. data/lib/lono/builder/configset/registration.rb +35 -0
  41. data/lib/lono/builder/context.rb +40 -0
  42. data/lib/lono/builder/dsl/evaluator.rb +45 -0
  43. data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
  44. data/lib/lono/builder/dsl/finalizer/configsets.rb +20 -0
  45. data/lib/lono/builder/dsl/finalizer/files/base.rb +4 -0
  46. data/lib/lono/builder/dsl/finalizer/files/build.rb +58 -0
  47. data/lib/lono/builder/dsl/finalizer/files/replace.rb +31 -0
  48. data/lib/lono/builder/dsl/finalizer/files.rb +9 -0
  49. data/lib/lono/{template/strategy → builder}/dsl/finalizer/parameter_groups.rb +6 -5
  50. data/lib/lono/builder/dsl/finalizer.rb +15 -0
  51. data/lib/lono/{template/strategy/dsl/builder/helpers/ec2_helper.rb → builder/dsl/helpers/ec2.rb} +3 -3
  52. data/lib/lono/builder/dsl/helpers/files.rb +7 -0
  53. data/lib/lono/builder/dsl/helpers/partials.rb +140 -0
  54. data/lib/lono/{template/strategy/dsl/builder/helpers/s3_helper.rb → builder/dsl/helpers/s3.rb} +3 -3
  55. data/lib/lono/{template/context/ssm_fetcher.rb → builder/dsl/helpers/ssm/fetcher.rb} +5 -3
  56. data/lib/lono/{template/context/helpers.rb → builder/dsl/helpers/ssm.rb} +3 -3
  57. data/lib/lono/{template/strategy/dsl/builder/helpers/stack_helper.rb → builder/dsl/helpers/stack.rb} +14 -9
  58. data/lib/lono/{template/strategy/dsl/builder/helpers/tags_helper.rb → builder/dsl/helpers/tags.rb} +2 -2
  59. data/lib/lono/builder/dsl/helpers/template_file.rb +66 -0
  60. data/lib/lono/builder/dsl/helpers.rb +5 -0
  61. data/lib/lono/builder/dsl/syntax/core/base.rb +22 -0
  62. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/condition.rb +1 -1
  63. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/mapping.rb +1 -1
  64. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/output.rb +1 -1
  65. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/parameter.rb +1 -1
  66. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource/property_mover.rb +12 -2
  67. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource.rb +1 -1
  68. data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/section.rb +1 -1
  69. data/lib/lono/builder/dsl/syntax/core/squeezer.rb +38 -0
  70. data/lib/lono/{template/strategy/dsl/builder/section/methods.rb → builder/dsl/syntax/core.rb} +8 -8
  71. data/lib/lono/{template/strategy/dsl/builder → builder/dsl/syntax}/fn.rb +2 -2
  72. data/lib/lono/{template/strategy/dsl/builder → builder/dsl}/syntax/parameter_group.rb +1 -1
  73. data/lib/lono/builder/dsl/syntax.rb +9 -0
  74. data/lib/lono/builder/dsl.rb +14 -0
  75. data/lib/lono/{param/generator.rb → builder/param.rb} +24 -22
  76. data/lib/lono/builder/template/aws_service.rb +15 -0
  77. data/lib/lono/builder/template/bashify.rb +43 -0
  78. data/lib/lono/{output/template.rb → builder/template/output.rb} +14 -7
  79. data/lib/lono/{template → builder/template}/post_processor.rb +4 -4
  80. data/lib/lono/builder/template/upload.rb +8 -0
  81. data/lib/lono/builder/template.rb +55 -0
  82. data/lib/lono/{template/strategy/dsl/builder → builder/util}/stringify.rb +1 -1
  83. data/lib/lono/bundler/cli/base.rb +10 -0
  84. data/lib/lono/bundler/cli/bundle.rb +44 -0
  85. data/lib/lono/bundler/cli/clean.rb +27 -0
  86. data/lib/lono/bundler/cli/help/bundle.md +3 -0
  87. data/lib/lono/bundler/cli/help.rb +11 -0
  88. data/lib/lono/bundler/cli.rb +7 -0
  89. data/lib/lono/bundler/component/concerns/local_concern.rb +10 -0
  90. data/lib/lono/bundler/component/concerns/notation_concern.rb +59 -0
  91. data/lib/lono/bundler/component/concerns/path_concern.rb +68 -0
  92. data/lib/lono/bundler/component/concerns/stack_concern.rb +60 -0
  93. data/lib/lono/bundler/component/fetcher/base.rb +27 -0
  94. data/lib/lono/bundler/component/fetcher/gcs.rb +69 -0
  95. data/lib/lono/bundler/component/fetcher/git.rb +69 -0
  96. data/lib/lono/bundler/component/fetcher/local.rb +15 -0
  97. data/lib/lono/bundler/component/fetcher/s3.rb +66 -0
  98. data/lib/lono/bundler/component/fetcher.rb +18 -0
  99. data/lib/lono/bundler/component/http/concern.rb +45 -0
  100. data/lib/lono/bundler/component/http/source.rb +19 -0
  101. data/lib/lono/bundler/component/org_repo.rb +65 -0
  102. data/lib/lono/bundler/component/props/extension.rb +18 -0
  103. data/lib/lono/bundler/component/props/typer.rb +41 -0
  104. data/lib/lono/bundler/component/props.rb +122 -0
  105. data/lib/lono/bundler/component/registry.rb +136 -0
  106. data/lib/lono/bundler/component.rb +52 -0
  107. data/lib/lono/bundler/config.rb +18 -0
  108. data/lib/lono/bundler/dsl/syntax.rb +46 -0
  109. data/lib/lono/bundler/dsl.rb +21 -0
  110. data/lib/lono/bundler/exporter/base.rb +6 -0
  111. data/lib/lono/bundler/exporter/copy.rb +22 -0
  112. data/lib/lono/bundler/exporter.rb +50 -0
  113. data/lib/lono/bundler/extract/tar.rb +33 -0
  114. data/lib/lono/bundler/extract/zip.rb +16 -0
  115. data/lib/lono/bundler/info.rb +39 -0
  116. data/lib/lono/bundler/list.rb +26 -0
  117. data/lib/lono/bundler/lockfile/version_comparer.rb +56 -0
  118. data/lib/lono/bundler/lockfile/yamler.rb +36 -0
  119. data/lib/lono/bundler/lockfile.rb +66 -0
  120. data/lib/lono/bundler/lonofile.rb +32 -0
  121. data/lib/lono/bundler/runner.rb +27 -0
  122. data/lib/lono/bundler/syncer.rb +70 -0
  123. data/lib/lono/bundler/util/git.rb +37 -0
  124. data/lib/lono/bundler/util/logging.rb +7 -0
  125. data/lib/lono/bundler/util/sure.rb +5 -0
  126. data/lib/lono/{bundle.rb → bundler.rb} +38 -4
  127. data/lib/lono/cfn/base.rb +9 -195
  128. data/lib/lono/cfn/cancel.rb +12 -29
  129. data/lib/lono/cfn/concerns/build.rb +10 -0
  130. data/lib/lono/cfn/concerns/template_output.rb +10 -0
  131. data/lib/lono/cfn/concerns.rb +43 -0
  132. data/lib/lono/cfn/delete.rb +8 -32
  133. data/lib/lono/cfn/deploy/base.rb +4 -0
  134. data/lib/lono/cfn/deploy/iam.rb +48 -0
  135. data/lib/lono/cfn/deploy/notification.rb +8 -0
  136. data/lib/lono/cfn/deploy/operable.rb +18 -0
  137. data/lib/lono/cfn/deploy/opts.rb +49 -0
  138. data/lib/lono/cfn/deploy/rollback.rb +46 -0
  139. data/lib/lono/cfn/deploy/tags.rb +18 -0
  140. data/lib/lono/cfn/deploy.rb +100 -5
  141. data/lib/lono/cfn/download.rb +4 -7
  142. data/lib/lono/cfn/output.rb +49 -0
  143. data/lib/lono/cfn/plan/base.rb +19 -0
  144. data/lib/lono/cfn/plan/changeset/base.rb +19 -0
  145. data/lib/lono/cfn/plan/changeset/notifications.rb +24 -0
  146. data/lib/lono/cfn/plan/changeset/outputs.rb +25 -0
  147. data/lib/lono/cfn/plan/changeset/resources.rb +48 -0
  148. data/lib/lono/cfn/plan/changeset/tags.rb +16 -0
  149. data/lib/lono/cfn/plan/changeset.rb +136 -0
  150. data/lib/lono/cfn/plan/concerns.rb +10 -0
  151. data/lib/lono/cfn/plan/delete.rb +16 -0
  152. data/lib/lono/cfn/plan/diff/base.rb +10 -0
  153. data/lib/lono/cfn/plan/diff/data.rb +62 -0
  154. data/lib/lono/cfn/plan/diff/file.rb +57 -0
  155. data/lib/lono/cfn/plan/new.rb +26 -0
  156. data/lib/lono/cfn/{preview → plan}/param.rb +26 -34
  157. data/lib/lono/cfn/plan/summary.rb +16 -0
  158. data/lib/lono/cfn/plan/template.rb +28 -0
  159. data/lib/lono/cfn/plan.rb +34 -0
  160. data/lib/lono/cfn/show.rb +30 -0
  161. data/lib/lono/cfn/status.rb +1 -1
  162. data/lib/lono/cli/abstract.rb +11 -0
  163. data/lib/lono/cli/base.rb +11 -0
  164. data/lib/lono/cli/build.rb +47 -0
  165. data/lib/lono/cli/bundle.rb +21 -0
  166. data/lib/lono/cli/cfn/opts.rb +59 -0
  167. data/lib/lono/cli/cfn.rb +19 -0
  168. data/lib/lono/cli/clean.rb +23 -0
  169. data/lib/lono/cli/code.rb +22 -0
  170. data/lib/lono/{completion.rb → cli/completion.rb} +2 -2
  171. data/lib/lono/{help → cli/help}/blueprint/new.md +4 -4
  172. data/lib/lono/{help/generate.md → cli/help/build.md} +6 -6
  173. data/lib/lono/{help → cli/help}/cfn/cancel.md +0 -0
  174. data/lib/lono/cli/help/cfn/download.md +3 -0
  175. data/lib/lono/{help → cli/help}/cfn/preview.md +9 -8
  176. data/lib/lono/{help → cli/help}/cfn/status.md +0 -1
  177. data/lib/lono/cli/help/cfn.md +4 -0
  178. data/lib/lono/{help → cli/help}/code/convert.md +0 -0
  179. data/lib/lono/{help → cli/help}/code/import.md +2 -2
  180. data/lib/lono/{help → cli/help}/completion.md +3 -3
  181. data/lib/lono/{help → cli/help}/completion_script.md +0 -0
  182. data/lib/lono/{help → cli/help}/configsets.md +0 -0
  183. data/lib/lono/cli/help/down.md +13 -0
  184. data/lib/lono/cli/help/new/helper/blueprint.md +17 -0
  185. data/lib/lono/cli/help/new/helper/project.md +16 -0
  186. data/lib/lono/cli/help/new/project.md +34 -0
  187. data/lib/lono/{help → cli/help}/param/generate.md +0 -0
  188. data/lib/lono/cli/help/param.md +6 -0
  189. data/lib/lono/{help → cli/help}/pro/blueprints.md +0 -0
  190. data/lib/lono/{help → cli/help}/pro/configsets.md +0 -0
  191. data/lib/lono/{help → cli/help}/script/build.md +0 -0
  192. data/lib/lono/{help → cli/help}/script/upload.md +0 -0
  193. data/lib/lono/cli/help/seed.md +24 -0
  194. data/lib/lono/cli/help/summary.md +33 -0
  195. data/lib/lono/{help → cli/help}/template/bashify.md +0 -0
  196. data/lib/lono/cli/help/template/generate.md +7 -0
  197. data/lib/lono/{help → cli/help}/template.md +0 -0
  198. data/lib/lono/cli/help/up.md +30 -0
  199. data/lib/lono/{help → cli/help}/user_data.md +3 -3
  200. data/lib/lono/cli/help.rb +56 -0
  201. data/lib/lono/cli/list.rb +25 -0
  202. data/lib/lono/cli/new/blueprint.rb +29 -0
  203. data/lib/lono/cli/new/concerns.rb +16 -0
  204. data/lib/lono/cli/new/configset.rb +37 -0
  205. data/lib/lono/{extension/new.rb → cli/new/extension.rb} +2 -10
  206. data/lib/lono/cli/new/helper/blueprint.rb +26 -0
  207. data/lib/lono/cli/new/helper/project.rb +24 -0
  208. data/lib/lono/cli/new/helper.rb +13 -0
  209. data/lib/lono/cli/new/project.rb +77 -0
  210. data/lib/lono/cli/new/sequence.rb +56 -0
  211. data/lib/lono/cli/new/shim.rb +59 -0
  212. data/lib/lono/cli/new/test/blueprint.rb +23 -0
  213. data/lib/lono/cli/new/test/sequence.rb +10 -0
  214. data/lib/lono/cli/new/test.rb +8 -0
  215. data/lib/lono/cli/new.rb +27 -0
  216. data/lib/lono/{opts.rb → cli/opts.rb} +9 -12
  217. data/lib/lono/{s3.rb → cli/s3.rb} +9 -7
  218. data/lib/lono/cli/script/base.rb +5 -0
  219. data/lib/lono/cli/script/build.rb +72 -0
  220. data/lib/lono/cli/script/upload.rb +49 -0
  221. data/lib/lono/{script.rb → cli/script.rb} +2 -2
  222. data/lib/lono/cli/seed.rb +9 -0
  223. data/lib/lono/cli/status.rb +18 -0
  224. data/lib/lono/cli/test.rb +35 -0
  225. data/lib/lono/cli.rb +78 -109
  226. data/lib/lono/command.rb +27 -1
  227. data/lib/lono/component.rb +29 -0
  228. data/lib/lono/concerns/aws_info.rb +14 -0
  229. data/lib/lono/concerns/names.rb +9 -0
  230. data/lib/lono/configset.rb +11 -10
  231. data/lib/lono/core.rb +25 -54
  232. data/lib/lono/ext/core/module.rb +31 -0
  233. data/lib/lono/ext/core/object.rb +32 -0
  234. data/lib/lono/ext/core/string.rb +9 -0
  235. data/lib/lono/ext.rb +4 -0
  236. data/lib/lono/files/base.rb +12 -0
  237. data/lib/lono/files/builder.rb +37 -0
  238. data/lib/lono/files/compressor.rb +53 -0
  239. data/lib/lono/files/concerns/post_processing.rb +35 -0
  240. data/lib/lono/files/concerns/registration.rb +13 -0
  241. data/lib/lono/files/registry.rb +6 -0
  242. data/lib/lono/files.rb +37 -0
  243. data/lib/lono/importer/base.rb +6 -6
  244. data/lib/lono/importer/download.rb +7 -7
  245. data/lib/lono/importer/dsl.rb +3 -3
  246. data/lib/lono/importer/service/coder.rb +67 -63
  247. data/lib/lono/importer.rb +1 -10
  248. data/lib/lono/inspector/base.rb +7 -7
  249. data/lib/lono/inspector/summary.rb +18 -19
  250. data/lib/lono/layering/layer.rb +112 -0
  251. data/lib/lono/layering.rb +13 -55
  252. data/lib/lono/logger/formatter.rb +13 -0
  253. data/lib/lono/logger.rb +32 -0
  254. data/lib/lono/names.rb +50 -0
  255. data/lib/lono/plugin/meta.rb +30 -0
  256. data/lib/lono/plugin/tester.rb +13 -0
  257. data/lib/lono/plugin.rb +10 -0
  258. data/lib/lono/s3/aws_setup.rb +4 -3
  259. data/lib/lono/s3/bucket.rb +42 -42
  260. data/lib/lono/s3/rollback.rb +8 -0
  261. data/lib/lono/s3/uploader.rb +33 -34
  262. data/lib/lono/script/base.rb +3 -3
  263. data/lib/lono/script/build.rb +11 -12
  264. data/lib/lono/script/upload.rb +7 -7
  265. data/lib/lono/seeder.rb +110 -0
  266. data/lib/lono/user_data.rb +10 -13
  267. data/lib/lono/utils/logging.rb +7 -0
  268. data/lib/lono/utils/{pretty_time.rb → pretty.rb} +6 -2
  269. data/lib/lono/utils/quit.rb +7 -0
  270. data/lib/lono/utils/rsync.rb +4 -2
  271. data/lib/lono/utils/sure.rb +4 -4
  272. data/lib/lono/version.rb +1 -1
  273. data/lib/lono/yamler/validator.rb +7 -22
  274. data/lib/lono.rb +15 -12
  275. data/lib/templates/blueprint/template.rb +2 -0
  276. data/lib/templates/configset/configset.rb +2 -0
  277. data/lib/templates/examples/blueprint/template.rb +9 -0
  278. data/lib/templates/{configset/lib → examples/configset}/configset.rb +0 -0
  279. data/lib/templates/helper/%underscore_name%_helper.rb.tt +6 -0
  280. data/lib/templates/{skeleton → project}/.gitignore +1 -2
  281. data/lib/templates/project/Gemfile.tt +11 -0
  282. data/lib/templates/project/README.md +9 -0
  283. data/lib/templates/project/config/app.rb +3 -0
  284. data/lib/templates/shim/lono +7 -0
  285. data/lono.gemspec +51 -44
  286. metadata +282 -296
  287. data/.circleci/README.md +0 -3
  288. data/.circleci/config.yml +0 -58
  289. data/.cody/acceptance.sh +0 -49
  290. data/.cody/buildspec.yml +0 -9
  291. data/.cody/demo.rb +0 -38
  292. data/.cody/project.rb +0 -6
  293. data/.gitmodules +0 -3
  294. data/lib/lono/abstract_base.rb +0 -25
  295. data/lib/lono/app_file/base.rb +0 -28
  296. data/lib/lono/app_file/build/lambda_layer/ruby_packager.rb +0 -153
  297. data/lib/lono/app_file/build/lambda_layer.rb +0 -20
  298. data/lib/lono/app_file/build.rb +0 -84
  299. data/lib/lono/app_file/registry/item.rb +0 -24
  300. data/lib/lono/app_file/registry.rb +0 -16
  301. data/lib/lono/app_file/upload.rb +0 -12
  302. data/lib/lono/aws_services/stack.rb +0 -41
  303. data/lib/lono/aws_services/stack_set.rb +0 -41
  304. data/lib/lono/blueprint/configset/loader.rb +0 -7
  305. data/lib/lono/blueprint/helper.rb +0 -24
  306. data/lib/lono/blueprint/meta.rb +0 -30
  307. data/lib/lono/blueprint/new.rb +0 -127
  308. data/lib/lono/blueprint/root.rb +0 -25
  309. data/lib/lono/cfn/create.rb +0 -41
  310. data/lib/lono/cfn/opts.rb +0 -88
  311. data/lib/lono/cfn/preview/changeset.rb +0 -168
  312. data/lib/lono/cfn/preview/codediff.rb +0 -41
  313. data/lib/lono/cfn/preview/diff_viewer.rb +0 -23
  314. data/lib/lono/cfn/rollback.rb +0 -26
  315. data/lib/lono/cfn/update.rb +0 -71
  316. data/lib/lono/cfn.rb +0 -75
  317. data/lib/lono/clean.rb +0 -14
  318. data/lib/lono/code.rb +0 -22
  319. data/lib/lono/configset/combiner.rb +0 -162
  320. data/lib/lono/configset/evaluate_file.rb +0 -8
  321. data/lib/lono/configset/generator.rb +0 -57
  322. data/lib/lono/configset/list.rb +0 -67
  323. data/lib/lono/configset/meta/dsl.rb +0 -12
  324. data/lib/lono/configset/meta.rb +0 -19
  325. data/lib/lono/configset/new.rb +0 -77
  326. data/lib/lono/configset/preparer.rb +0 -44
  327. data/lib/lono/configset/register/base.rb +0 -122
  328. data/lib/lono/configset/register/blueprint.rb +0 -16
  329. data/lib/lono/configset/register/dsl.rb +0 -14
  330. data/lib/lono/configset/register/project.rb +0 -13
  331. data/lib/lono/configset/resolver.rb +0 -47
  332. data/lib/lono/configset/s3_file/build.rb +0 -33
  333. data/lib/lono/configset/s3_file/item.rb +0 -38
  334. data/lib/lono/configset/s3_file/registry.rb +0 -12
  335. data/lib/lono/configset/s3_file/upload.rb +0 -12
  336. data/lib/lono/configset/strategy/base.rb +0 -83
  337. data/lib/lono/configset/strategy/helpers/dsl.rb +0 -8
  338. data/lib/lono/configset/strategy/helpers/erb.rb +0 -9
  339. data/lib/lono/conventions.rb +0 -23
  340. data/lib/lono/core/config.rb +0 -22
  341. data/lib/lono/default/settings.yml +0 -21
  342. data/lib/lono/extension/helper.rb +0 -13
  343. data/lib/lono/extension/list.rb +0 -40
  344. data/lib/lono/extension.rb +0 -9
  345. data/lib/lono/extensions/dsl.rb +0 -11
  346. data/lib/lono/extensions/loader.rb +0 -30
  347. data/lib/lono/extensions/preparer.rb +0 -26
  348. data/lib/lono/extensions/register.rb +0 -15
  349. data/lib/lono/extensions.rb +0 -18
  350. data/lib/lono/file_uploader.rb +0 -21
  351. data/lib/lono/finder/base.rb +0 -152
  352. data/lib/lono/finder/blueprint/configset.rb +0 -17
  353. data/lib/lono/finder/blueprint.rb +0 -11
  354. data/lib/lono/finder/configset.rb +0 -11
  355. data/lib/lono/finder/extension.rb +0 -11
  356. data/lib/lono/generate.rb +0 -111
  357. data/lib/lono/help/cfn/create.md +0 -26
  358. data/lib/lono/help/cfn/delete.md +0 -13
  359. data/lib/lono/help/cfn/deploy.md +0 -21
  360. data/lib/lono/help/cfn/download.md +0 -3
  361. data/lib/lono/help/cfn/update.md +0 -49
  362. data/lib/lono/help/cfn.md +0 -7
  363. data/lib/lono/help/new.md +0 -57
  364. data/lib/lono/help/param.md +0 -6
  365. data/lib/lono/help/seed.md +0 -23
  366. data/lib/lono/help/set_instances/delete.md +0 -21
  367. data/lib/lono/help/set_instances/deploy.md +0 -31
  368. data/lib/lono/help/set_instances/list.md +0 -14
  369. data/lib/lono/help/set_instances/status.md +0 -15
  370. data/lib/lono/help/set_instances/sync.md +0 -92
  371. data/lib/lono/help/sets/delete.md +0 -8
  372. data/lib/lono/help/sets/deploy.md +0 -76
  373. data/lib/lono/help/sets/status.md +0 -23
  374. data/lib/lono/help/summary.md +0 -33
  375. data/lib/lono/help/template/generate.md +0 -7
  376. data/lib/lono/help/upgrade.md +0 -1
  377. data/lib/lono/help/xgraph.md +0 -16
  378. data/lib/lono/help.rb +0 -15
  379. data/lib/lono/importer/erb.rb +0 -31
  380. data/lib/lono/inspector/graph.rb +0 -125
  381. data/lib/lono/jade/circular.rb +0 -26
  382. data/lib/lono/jade/materializer/final.rb +0 -10
  383. data/lib/lono/jade/materializer/gems_builder.rb +0 -81
  384. data/lib/lono/jade/materializer/source.rb +0 -54
  385. data/lib/lono/jade/materializer.rb +0 -15
  386. data/lib/lono/jade/registry.rb +0 -64
  387. data/lib/lono/jade.rb +0 -110
  388. data/lib/lono/jadespec.rb +0 -68
  389. data/lib/lono/new/helper.rb +0 -15
  390. data/lib/lono/new.rb +0 -95
  391. data/lib/lono/param.rb +0 -14
  392. data/lib/lono/pro/base.rb +0 -16
  393. data/lib/lono/pro/repo.rb +0 -28
  394. data/lib/lono/pro.rb +0 -15
  395. data/lib/lono/project_checker.rb +0 -35
  396. data/lib/lono/registration/base.rb +0 -37
  397. data/lib/lono/registration/check.rb +0 -15
  398. data/lib/lono/registration/temp.rb +0 -53
  399. data/lib/lono/registration/user.rb +0 -60
  400. data/lib/lono/seed/base.rb +0 -116
  401. data/lib/lono/seed/service_role.rb +0 -11
  402. data/lib/lono/seed.rb +0 -39
  403. data/lib/lono/sequence.rb +0 -35
  404. data/lib/lono/set_instances/base.rb +0 -30
  405. data/lib/lono/set_instances/changeable.rb +0 -53
  406. data/lib/lono/set_instances/create.rb +0 -7
  407. data/lib/lono/set_instances/delete.rb +0 -47
  408. data/lib/lono/set_instances/deploy.rb +0 -52
  409. data/lib/lono/set_instances/list.rb +0 -13
  410. data/lib/lono/set_instances/opts.rb +0 -37
  411. data/lib/lono/set_instances/status.rb +0 -12
  412. data/lib/lono/set_instances/sync.rb +0 -181
  413. data/lib/lono/set_instances/update.rb +0 -15
  414. data/lib/lono/set_instances.rb +0 -54
  415. data/lib/lono/sets/base.rb +0 -50
  416. data/lib/lono/sets/create.rb +0 -27
  417. data/lib/lono/sets/delete.rb +0 -43
  418. data/lib/lono/sets/deploy.rb +0 -11
  419. data/lib/lono/sets/list.rb +0 -35
  420. data/lib/lono/sets/opts.rb +0 -18
  421. data/lib/lono/sets/preview/codediff.rb +0 -35
  422. data/lib/lono/sets/preview/param.rb +0 -32
  423. data/lib/lono/sets/status/instance/base.rb +0 -120
  424. data/lib/lono/sets/status/instance/completed.rb +0 -35
  425. data/lib/lono/sets/status/instance/deleted.rb +0 -32
  426. data/lib/lono/sets/status/instance/show.rb +0 -7
  427. data/lib/lono/sets/status/instance.rb +0 -20
  428. data/lib/lono/sets/status/instances.rb +0 -136
  429. data/lib/lono/sets/status.rb +0 -128
  430. data/lib/lono/sets/summarize.rb +0 -22
  431. data/lib/lono/sets/time_spent.rb +0 -11
  432. data/lib/lono/sets/update.rb +0 -74
  433. data/lib/lono/sets/waiter.rb +0 -23
  434. data/lib/lono/sets.rb +0 -34
  435. data/lib/lono/setting.rb +0 -75
  436. data/lib/lono/template/aws_service.rb +0 -20
  437. data/lib/lono/template/bashify.rb +0 -39
  438. data/lib/lono/template/configset_injector.rb +0 -52
  439. data/lib/lono/template/context/loader/load_files.rb +0 -24
  440. data/lib/lono/template/context/loader.rb +0 -52
  441. data/lib/lono/template/context.rb +0 -29
  442. data/lib/lono/template/evaluate.rb +0 -40
  443. data/lib/lono/template/generator.rb +0 -23
  444. data/lib/lono/template/helper.rb +0 -152
  445. data/lib/lono/template/strategy/base.rb +0 -4
  446. data/lib/lono/template/strategy/common/helpers.rb +0 -44
  447. data/lib/lono/template/strategy/dsl/builder/helpers/core_helper.rb +0 -14
  448. data/lib/lono/template/strategy/dsl/builder/helpers/file_helper.rb +0 -48
  449. data/lib/lono/template/strategy/dsl/builder/helpers.rb +0 -16
  450. data/lib/lono/template/strategy/dsl/builder/section/base.rb +0 -30
  451. data/lib/lono/template/strategy/dsl/builder/squeezer.rb +0 -24
  452. data/lib/lono/template/strategy/dsl/builder/syntax/extend_with.rb +0 -9
  453. data/lib/lono/template/strategy/dsl/builder/syntax.rb +0 -11
  454. data/lib/lono/template/strategy/dsl/builder.rb +0 -59
  455. data/lib/lono/template/strategy/dsl/finalizer.rb +0 -12
  456. data/lib/lono/template/strategy/dsl.rb +0 -14
  457. data/lib/lono/template/strategy/erb.rb +0 -82
  458. data/lib/lono/template/strategy/source.rb +0 -8
  459. data/lib/lono/template/template.rb +0 -54
  460. data/lib/lono/template/upload.rb +0 -23
  461. data/lib/lono/template/util.rb +0 -8
  462. data/lib/lono/template.rb +0 -24
  463. data/lib/lono/upgrade.rb +0 -20
  464. data/lib/lono/utils/generators/tree.rb +0 -18
  465. data/lib/lono/utils/item/file_methods.rb +0 -29
  466. data/lib/lono/utils/item/zip.rb +0 -42
  467. data/lib/templates/blueprint/%blueprint_name%.gemspec.tt +0 -45
  468. data/lib/templates/blueprint/.gitignore +0 -11
  469. data/lib/templates/blueprint/CHANGELOG.md +0 -7
  470. data/lib/templates/blueprint/Gemfile +0 -4
  471. data/lib/templates/blueprint/README.md.tt +0 -33
  472. data/lib/templates/blueprint/Rakefile.tt +0 -9
  473. data/lib/templates/blueprint/seed/configs.rb +0 -28
  474. data/lib/templates/blueprint_types/dsl/app/templates/%blueprint_name%.rb +0 -36
  475. data/lib/templates/blueprint_types/dsl/app/user_data/bootstrap.sh +0 -2
  476. data/lib/templates/blueprint_types/erb/app/definitions/base.rb.tt +0 -1
  477. data/lib/templates/blueprint_types/erb/app/templates/%blueprint_name%.yml +0 -67
  478. data/lib/templates/configset/%configset_name%.gemspec.tt +0 -42
  479. data/lib/templates/configset/.gitignore +0 -10
  480. data/lib/templates/configset/CHANGELOG.md +0 -7
  481. data/lib/templates/configset/Gemfile +0 -4
  482. data/lib/templates/configset/README.md.tt +0 -3
  483. data/lib/templates/configset/Rakefile.tt +0 -9
  484. data/lib/templates/extension/%extension_name%.gemspec.tt +0 -46
  485. data/lib/templates/extension/.gitignore +0 -11
  486. data/lib/templates/extension/.rspec +0 -3
  487. data/lib/templates/extension/CHANGELOG.md +0 -7
  488. data/lib/templates/extension/Gemfile.tt +0 -4
  489. data/lib/templates/extension/Rakefile.tt +0 -9
  490. data/lib/templates/extension/spec/spec_helper.rb.tt +0 -29
  491. data/lib/templates/skeleton/Gemfile +0 -3
  492. data/lib/templates/skeleton/README.md +0 -58
  493. data/lib/templates/skeleton/configs/settings.yml +0 -13
  494. data/vendor/cfn-status/CHANGELOG.md +0 -14
  495. data/vendor/cfn-status/Gemfile +0 -4
  496. data/vendor/cfn-status/Gemfile.lock +0 -49
  497. data/vendor/cfn-status/LICENSE.txt +0 -21
  498. data/vendor/cfn-status/README.md +0 -58
  499. data/vendor/cfn-status/Rakefile +0 -6
  500. data/vendor/cfn-status/bin/console +0 -14
  501. data/vendor/cfn-status/bin/setup +0 -8
  502. data/vendor/cfn-status/cfn-status.gemspec +0 -30
  503. data/vendor/cfn-status/lib/cfn-status.rb +0 -1
  504. data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
  505. data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
  506. data/vendor/cfn-status/lib/cfn_status.rb +0 -245
  507. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
  508. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
  509. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
  510. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
  511. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
  512. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
  513. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
  514. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
  515. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
  516. data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
  517. data/vendor/cfn-status/spec/spec_helper.rb +0 -14
data/.circleci/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Overview
2
-
3
- CircleCI is used to run **unit-level tests**.
data/.circleci/config.yml DELETED
@@ -1,58 +0,0 @@
1
- # Ruby CircleCI 2.0 configuration file
2
- #
3
- # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
- #
5
- version: 2
6
- jobs:
7
- build:
8
- docker:
9
- # specify the version you desire here
10
- - image: circleci/ruby:2.6.5-node-browsers
11
-
12
- # Specify service dependencies here if necessary
13
- # CircleCI maintains a library of pre-built images
14
- # documented at https://circleci.com/docs/2.0/circleci-images/
15
- # - image: circleci/postgres:9.4
16
-
17
- working_directory: ~/repo
18
-
19
- steps:
20
- - checkout
21
-
22
- - run:
23
- name: submodule sync
24
- command: |
25
- git submodule sync
26
- git submodule update --init
27
-
28
- # Download and cache dependencies
29
- - restore_cache:
30
- keys:
31
- - v2-dependencies-{{ checksum "lono.gemspec" }}
32
- # fallback to using the latest cache if no exact match is found
33
- - v2-dependencies-
34
-
35
- - run:
36
- name: install dependencies
37
- command: |
38
- gem install bundler
39
- gem update --system
40
- bundle install --jobs=4 --retry=3 --path vendor/bundle
41
-
42
- - save_cache:
43
- paths:
44
- - ./vendor/bundle
45
- key: v2-dependencies-{{ checksum "lono.gemspec" }}
46
-
47
- # run tests!
48
- - run:
49
- name: run tests
50
- command: |
51
- bundle exec rspec
52
-
53
- # collect reports
54
- - store_test_results:
55
- path: /tmp/test-results
56
- - store_artifacts:
57
- path: /tmp/test-results
58
- destination: test-results
data/.cody/acceptance.sh DELETED
@@ -1,49 +0,0 @@
1
- #!/bin/bash
2
-
3
- gem install bundler # upgrade bundler
4
-
5
- set -exu
6
-
7
- git config --global user.email "tonguerooo@gmail.com"
8
- git config --global user.name "tung"
9
-
10
- # https://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases
11
- shopt -s expand_aliases
12
- alias lono="$(pwd)/exe/lono"
13
-
14
- bundle install --without development test
15
-
16
- rm -rf infra
17
-
18
- lono new infra
19
- cd infra
20
-
21
- # Rewrite the Gemfile to use the local lono gem for testing
22
- cat << EOF > Gemfile
23
- source "https://rubygems.org"
24
- gem "lono", path: "$CODEBUILD_SRC_DIR", submodules: true
25
- EOF
26
- cat Gemfile
27
-
28
- bundle # install lono gem in the infra project
29
-
30
- # Create a demo blueprint
31
- lono blueprint new demo
32
- # Very simply template with just a security group
33
- cp ../.cody/demo.rb app/blueprints/demo/app/templates/demo.rb
34
-
35
- STACK_NAME="demo-$(date +%Y%m%d%H%M%S)"
36
-
37
- # Configure lono registration
38
- mkdir -p .lono
39
- cat << EOF > .lono/registration.yml
40
- ---
41
- name: <%= ssm("/lono/registration/name") %>
42
- company: <%= ssm("/lono/registration/company") %>
43
- email: <%= ssm("/lono/registration/email") %>
44
- registration_key: <%= ssm("/lono/registration/registration_key") %>
45
- EOF
46
-
47
- lono cfn deploy $STACK_NAME --blueprint demo
48
- lono cfn status $STACK_NAME
49
- lono cfn delete $STACK_NAME --sure
data/.cody/buildspec.yml DELETED
@@ -1,9 +0,0 @@
1
- version: 0.2
2
-
3
- phases:
4
- install:
5
- runtime-versions:
6
- ruby: 2.6
7
- build:
8
- commands:
9
- - .cody/acceptance.sh
data/.cody/demo.rb DELETED
@@ -1,38 +0,0 @@
1
- # Acceptance Level Stack
2
- aws_template_format_version "2010-09-09"
3
- description "Demo stack"
4
-
5
- parameter("InstanceType", "t3.micro")
6
-
7
- mapping("AmiMap",
8
- "ap-northeast-1": { Ami: "ami-0f9ae750e8274075b" },
9
- "ap-northeast-2": { Ami: "ami-047f7b46bd6dd5d84" },
10
- "ap-south-1": { Ami: "ami-0889b8a448de4fc44" },
11
- "ap-southeast-1": { Ami: "ami-0b419c3a4b01d1859" },
12
- "ap-southeast-2": { Ami: "ami-04481c741a0311bbb" },
13
- "ca-central-1": { Ami: "ami-03338e1f67dae0168" },
14
- "eu-central-1": { Ami: "ami-09def150731bdbcc2" },
15
- "eu-north-1": { Ami: "ami-d16fe6af" },
16
- "eu-west-1": { Ami: "ami-07683a44e80cd32c5" },
17
- "eu-west-2": { Ami: "ami-09ead922c1dad67e4" },
18
- "eu-west-3": { Ami: "ami-0451ae4fd8dd178f7" },
19
- "sa-east-1": { Ami: "ami-0669a96e355eac82f" },
20
- "us-east-1": { Ami: "ami-0de53d8956e8dcf80" },
21
- "us-east-2": { Ami: "ami-02bcbb802e03574ba" },
22
- "us-west-1": { Ami: "ami-0019ef04ac50be30f" },
23
- "us-west-2": { Ami: "ami-061392db613a6357b" }
24
- )
25
-
26
- # Comment out instance to save costs
27
- # resource(:instance, "AWS::EC2::Instance",
28
- # instance_type: ref(:instance_type),
29
- # image_id: find_in_map(:ami_map, ref("AWS::Region"), :ami),
30
- # security_group_ids: [get_att("security_group.group_id")],
31
- # user_data: base64(user_data("bootstrap.sh"))
32
- # )
33
- resource("SecurityGroup", "AWS::EC2::SecurityGroup",
34
- GroupDescription: "demo security group",
35
- )
36
-
37
- # output(:instance)
38
- output("SecurityGroup", get_att("SecurityGroup.GroupId"))
data/.cody/project.rb DELETED
@@ -1,6 +0,0 @@
1
- github_url("https://github.com/tongueroo/lono")
2
- linux_image("aws/codebuild/amazonlinux2-x86_64-standard:2.0")
3
- triggers(
4
- webhook: true,
5
- filter_groups: [[{type: "EVENT", pattern: "PUSH"}]]
6
- )
data/.gitmodules DELETED
@@ -1,3 +0,0 @@
1
- [submodule "vendor/cfn-status"]
2
- path = vendor/cfn-status
3
- url = https://github.com/tongueroo/cfn-status
@@ -1,25 +0,0 @@
1
- module Lono
2
- class AbstractBase
3
- extend Memoist
4
- include Lono::Blueprint::Root
5
-
6
- def initialize(options={})
7
- reinitialize(options)
8
- end
9
-
10
- # Hack so that we can use include Thor::Base
11
- def reinitialize(options)
12
- @options = options
13
- Lono::ProjectChecker.check
14
- @stack, @blueprint, @template, @param = Conventions.new(options).values
15
-
16
- return if options[:source]
17
- set_blueprint_root(@blueprint)
18
- Lono::ProjectChecker.empty_templates
19
- end
20
-
21
- def template_path
22
- "#{Lono.config.output_path}/#{@blueprint}/templates/#{@template}.yml"
23
- end
24
- end
25
- end
@@ -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::AbstractBase
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,153 +0,0 @@
1
- class Lono::AppFile::Build::LambdaLayer
2
- # Based on jets
3
- class RubyPackager
4
- include Lono::Utils::Rsync
5
-
6
- def initialize(blueprint, registry_item)
7
- @blueprint, @registry_item = blueprint, registry_item
8
-
9
- @registry_name = @registry_item.name.sub(/\/$/,'')
10
- @app_root = "#{Lono.blueprint_root}/app/files/#{@registry_name}"
11
- end
12
-
13
- def build
14
- return unless gemfile_exist?
15
-
16
- bundle_install
17
- package
18
- end
19
-
20
- # We consolidate all gems to opt
21
- def package
22
- setup_bundle_config(output_area)
23
- # copy_cache_gems # TODO: might not need this cache
24
- consolidate_gems_to_opt
25
- end
26
-
27
- # Also restructure the folder from:
28
- # vendor/gems/ruby/2.5.0
29
- # To:
30
- # ruby/gems/2.5.0
31
- #
32
- # For Lambda Layer structure
33
- def consolidate_gems_to_opt
34
- src = "#{cache_area}/vendor/gems/ruby/#{ruby_folder}"
35
- dest = "#{opt_area}/ruby/gems/#{ruby_folder}"
36
- rsync_and_link(src, dest)
37
- end
38
-
39
- def rsync_and_link(src, dest)
40
- FileUtils.mkdir_p(dest)
41
- rsync(src, dest)
42
-
43
- # create symlink in output path not the cache path
44
- symlink_dest = "#{output_area}/vendor/gems/ruby/#{ruby_folder}"
45
- puts "symlink_dest #{symlink_dest}"
46
- FileUtils.rm_rf(symlink_dest) # blow away original 2.5.0 folder
47
-
48
- # Create symlink that will point to the gems in the Lambda Layer:
49
- # stage/opt/ruby/gems/2.5.0 -> /opt/ruby/gems/2.5.0
50
- FileUtils.mkdir_p(File.dirname(symlink_dest))
51
- FileUtils.ln_sf("/opt/ruby/gems/#{ruby_folder}", symlink_dest)
52
- end
53
-
54
- def ruby_folder
55
- major, minor, _ = RUBY_VERSION.split('.')
56
- [major, minor, '0'].join('.') # 2.5.1 => 2.5.0
57
- end
58
-
59
- # Installs gems on the current target system: both compiled and non-compiled.
60
- # If user is on a macosx machine, macosx gems will be installed.
61
- # If user is on a linux machine, linux gems will be installed.
62
- #
63
- # Copies Gemfile* to /tmp/jets/demo/cache folder and installs
64
- # gems with bundle install from there.
65
- #
66
- # We take the time to copy Gemfile and bundle into a separate directory
67
- # because it gets left around to act as a 'cache'. So, when the builds the
68
- # project gets built again not all the gems from get installed from the
69
- # beginning.
70
- def bundle_install
71
- puts "Bundling: running bundle install in cache area: #{cache_area}."
72
-
73
- rsync(output_area, cache_area)
74
-
75
- # Uncomment out to always remove the cache/vendor/gems to debug
76
- # FileUtils.rm_rf("#{cache_area}/vendor/gems")
77
-
78
- # Remove .bundle folder so .bundle/config doesnt affect how gems are packages
79
- # Not using BUNDLE_IGNORE_CONFIG=1 to allow home ~/.bundle/config to affect bundling though.
80
- # This is useful if you have private gems sources that require authentication. Example:
81
- #
82
- # bundle config gems.myprivatesource.com user:pass
83
- #
84
-
85
- FileUtils.rm_rf("#{cache_area}/.bundle")
86
- require "bundler" # dynamically require bundler so user can use any bundler
87
- setup_bundle_config(cache_area)
88
- Bundler.with_unbundled_env do
89
- sh "cd #{cache_area} && env bundle install"
90
- end
91
-
92
- remove_bundled_with("#{cache_area}/Gemfile.lock")
93
- # Fixes really tricky bug where Gemfile and Gemfile.lock is out-of-sync. Details: https://gist.github.com/tongueroo/b5b0d0c924a4a1633eee514795e4b04b
94
- FileUtils.cp("#{cache_area}/Gemfile.lock", "#{Lono.config.output_path}/#{@blueprint}/files/#{@registry_name}/Gemfile.lock")
95
-
96
- puts 'Bundle install success.'
97
- end
98
-
99
- # Remove the BUNDLED WITH line since we don't control the bundler gem version on AWS Lambda
100
- # And this can cause issues with require 'bundler/setup'
101
- def remove_bundled_with(gemfile_lock)
102
- lines = IO.readlines(gemfile_lock)
103
-
104
- # amount is the number of lines to remove
105
- new_lines, capture, count, amount = [], true, 0, 2
106
- lines.each do |l|
107
- capture = false if l.include?('BUNDLED WITH')
108
- if capture
109
- new_lines << l
110
- end
111
- if capture == false
112
- count += 1
113
- capture = count > amount # renable capture
114
- end
115
- end
116
-
117
- content = new_lines.join('')
118
- IO.write(gemfile_lock, content)
119
- end
120
-
121
- def setup_bundle_config(dir)
122
- text =<<-EOL
123
- ---
124
- BUNDLE_PATH: "vendor/gems"
125
- BUNDLE_WITHOUT: "development:test"
126
- EOL
127
- bundle_config = "#{dir}/.bundle/config"
128
- FileUtils.mkdir_p(File.dirname(bundle_config))
129
- IO.write(bundle_config, text)
130
- end
131
-
132
- def output_area
133
- "#{Lono.config.output_path}/#{@blueprint}/files/#{@registry_name}"
134
- end
135
-
136
- def build_area
137
- "#{Lono.config.output_path}/#{@blueprint}/lambda_layers/#{@registry_name}"
138
- end
139
-
140
- def cache_area
141
- "#{build_area}/cache"
142
- end
143
-
144
- def opt_area
145
- "#{build_area}/opt"
146
- end
147
-
148
- def gemfile_exist?
149
- gemfile_path = "#{@app_root}/Gemfile"
150
- File.exist?(gemfile_path)
151
- end
152
- end
153
- end
@@ -1,20 +0,0 @@
1
- class Lono::AppFile::Build
2
- class LambdaLayer
3
- def initialize(blueprint, registry_item)
4
- @blueprint, @registry_item = blueprint, registry_item
5
- end
6
-
7
- def build
8
- lang = @registry_item.options[:lang]
9
- unless lang =~ /ruby/
10
- puts "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, @registry_item)
17
- packager.build
18
- end
19
- end
20
- end
@@ -1,84 +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.config.output_path}/#{@blueprint}/files"
9
- end
10
-
11
- def run
12
- return unless detect_files?
13
- puts "Building app/files for blueprint #{@blueprint}"
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
- puts "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
- puts " #{path}"
35
- end
36
- puts "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
- puts "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("#{Lono.blueprint_root}/app/files")
61
- self.destination_root = @output_files_path
62
- directory(".", verbose: false, context: context.get_binding) # Thor::Action
63
- end
64
-
65
- def context
66
- Lono::Template::Context.new(@options)
67
- end
68
- memoize :context
69
-
70
- def clean_output
71
- FileUtils.rm_rf(@output_files_path)
72
- end
73
-
74
- def detect_files?
75
- app_files = Dir["#{Lono.blueprint_root}/app/files/*"]
76
- if app_files.empty?
77
- false
78
- else
79
- puts "Detected app/files for blueprint #{@blueprint}"
80
- true
81
- end
82
- end
83
- end
84
- 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, @options = name, blueprint, options
9
- @type = options[:type] || "file"
10
- end
11
-
12
- def src_path
13
- "#{Lono.blueprint_root}/app/files/#{@name}"
14
- end
15
-
16
- def output_path
17
- if @type == "file"
18
- "#{Lono.root}/output/#{@blueprint}/files/#{@name}"
19
- else
20
- "#{Lono.root}/output/#{@blueprint}/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
- puts "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,41 +0,0 @@
1
- module Lono::AwsServices
2
- module Stack
3
- def stack_exists?(stack_name)
4
- return true if testing_update?
5
- return false if @options[:noop]
6
-
7
- exist = nil
8
- begin
9
- # When the stack does not exist an exception is raised. Example:
10
- # Aws::CloudFormation::Errors::ValidationError: Stack with id blah does not exist
11
- cfn.describe_stacks(stack_name: stack_name)
12
- exist = true
13
- rescue Aws::CloudFormation::Errors::ValidationError => e
14
- if e.message =~ /does not exist/
15
- exist = false
16
- elsif e.message.include?("'stackName' failed to satisfy constraint")
17
- # Example of e.message when describe_stack with invalid stack name
18
- # "1 validation error detected: Value 'instance_and_route53' at 'stackName' failed to satisfy constraint: Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]*|arn:[-a-zA-Z0-9:/._+]*"
19
- puts "Invalid stack name: #{stack_name}"
20
- puts "Full error message: #{e.message}"
21
- exit 1
22
- else
23
- raise # re-raise exception because unsure what other errors can happen
24
- end
25
- end
26
- exist
27
- end
28
-
29
- def find_stack(stack_name)
30
- resp = cfn.describe_stacks(stack_name: stack_name)
31
- resp.stacks.first
32
- rescue Aws::CloudFormation::Errors::ValidationError => e
33
- # example: Stack with id demo-web does not exist
34
- if e.message =~ /Stack with/ && e.message =~ /does not exist/
35
- nil
36
- else
37
- raise
38
- end
39
- end
40
- end
41
- end
@@ -1,41 +0,0 @@
1
- module Lono::AwsServices
2
- module StackSet
3
- def stack_set_exists?(stack_set_name)
4
- return true if ENV['LONO_TEST']
5
- return false if @options[:noop]
6
-
7
- exist = nil
8
- begin
9
- # When the stack does not exist an exception is raised. Example:
10
- # Aws::CloudFormation::Errors::ValidationError: Stack with id blah does not exist
11
- cfn.describe_stack_set(stack_set_name: stack_set_name)
12
- exist = true
13
- rescue Aws::CloudFormation::Errors::StackSetNotFoundException => e
14
- if e.message =~ /not found/
15
- exist = false
16
- elsif e.message.include?("'stackName' failed to satisfy constraint")
17
- # Example of e.message when describe_stack with invalid stack name
18
- # "1 validation error detected: Value 'instance_and_route53' at 'stackName' failed to satisfy constraint: Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]*|arn:[-a-zA-Z0-9:/._+]*"
19
- puts "Invalid stack name: #{stack_set_name}"
20
- puts "Full error message: #{e.message}"
21
- exit 1
22
- else
23
- raise # re-raise exception because unsure what other errors can happen
24
- end
25
- end
26
- exist
27
- end
28
-
29
- def find_stack_set(stack_set_name)
30
- resp = cfn.describe_set_stack(stack_set_name: stack_set_name)
31
- resp.stack_set
32
- rescue Aws::CloudFormation::Errors::ValidationError => e
33
- # example: StackSet with id demo-web does not exist
34
- if e.message =~ /Stack/ && e.message =~ /does not exist/
35
- nil
36
- else
37
- raise
38
- end
39
- end
40
- end
41
- end
@@ -1,7 +0,0 @@
1
- module Lono::Blueprint::Configset
2
- class Loader < Lono::Configset::Loader
3
- def finder_class
4
- Lono::Finder::Blueprint::Configset
5
- end
6
- end
7
- end
@@ -1,24 +0,0 @@
1
- class Lono::Blueprint
2
- module Helper
3
- extend Memoist
4
-
5
- def user_info
6
- git_author_name = git_installed? ? `git config user.name`.chomp : ""
7
- git_user_email = git_installed? ? `git config user.email`.chomp : ""
8
- github_username = git_installed? ? `git config github.user`.chomp : ""
9
-
10
- author = git_author_name.empty? ? "TODO: Write your name" : git_author_name
11
- email = git_user_email.empty? ? "TODO: Write your email address" : git_user_email
12
-
13
- author = "author" if ENV['LONO_TEST']
14
- email = "email" if ENV['LONO_TEST']
15
-
16
- {
17
- :author => author,
18
- :email => email,
19
- :github_username => github_username.empty? ? "[USERNAME]" : github_username,
20
- }
21
- end
22
- memoize :user_info
23
- end
24
- end