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
@@ -1,152 +0,0 @@
1
- require "aws-sdk-core"
2
-
3
- # This is included into Lono::Template::Context.
4
- # It has access to the original thor CLI options via @options.
5
- #
6
- # @options gets passed into:
7
- #
8
- # Lono::Template::Context.new(blueprint, @options)
9
- module Lono::Template::Helper
10
- def template_s3_path(template_name)
11
- # hi-jacking Uploader for https_url
12
- template_path = "output/#{@blueprint}/templates/#{template_name}.yml"
13
- Lono::S3::Uploader.new(template_path).s3_https_url
14
- end
15
-
16
- def template_params(param_name)
17
- o = {
18
- allow_not_exists: true
19
- }.merge(@options)
20
- o["param"] = param_name
21
- generator = Lono::Param::Generator.new(o)
22
- # do not generate because lono cfn calling logic already generated it we only need the values
23
- parameters = generator.parameters # Returns Array in underscore keys format
24
- # convert Array to simplified hash structure
25
- parameters.inject({}) do |h, param|
26
- h.merge(param[:parameter_key] => param[:parameter_value])
27
- end
28
- end
29
-
30
- # Adjust the partial path so that it will use app/user_data
31
- def user_data(path,vars={}, options={})
32
- options.merge!(user_data: true)
33
- partial(path,vars, options)
34
- end
35
-
36
- # The partial's path is a relative path.
37
- #
38
- # Example:
39
- # Given file in app/partials/iam/docker.yml
40
- #
41
- # <%= partial("iam/docker", {}, indent: 10) %>
42
- # <%= partial("iam/docker.yml", {}, indent: 10) %>
43
- #
44
- # If the user specifies the extension then use that instead of auto-adding
45
- # the detected format.
46
- def partial(path,vars={}, options={})
47
- path = options[:user_data] ?
48
- user_data_path_for(path) :
49
- partial_path_for(path)
50
- path = auto_add_format(path)
51
-
52
- instance_variables!(vars)
53
- result = render_path(path)
54
-
55
- result = indent(result, options[:indent]) if options[:indent]
56
- result + "\n"
57
- end
58
-
59
- # add indentation
60
- def indent(text, indentation_amount)
61
- text.split("\n").map do |line|
62
- " " * indentation_amount + line
63
- end.join("\n")
64
- end
65
-
66
- def partial_exist?(path)
67
- path = partial_path_for(path)
68
- path = auto_add_format(path)
69
- path && File.exist?(path)
70
- end
71
-
72
- def current_region
73
- region = Aws.config[:region]
74
- region ||= ENV['AWS_REGION']
75
- return region if region
76
-
77
- default_region = 'us-east-1' # fallback if default not found in ~/.aws/config
78
- if ENV['AWS_PROFILE']
79
- path = "#{ENV['HOME']}/.aws/config"
80
- if File.exist?(path)
81
- lines = IO.readlines(path)
82
- capture_default, capture_current = false, false
83
- lines.each do | line|
84
- if line.include?('[default]')
85
- capture_default = true # next line
86
- next
87
- end
88
- if capture_default && line.match(/region = /)
89
- # over default from above
90
- default_region = line.split(' = ').last.strip
91
- capture_default = false
92
- end
93
-
94
- md = line.match(/\[profile (.*)\]/)
95
- if md && md[1] == ENV['AWS_PROFILE']
96
- capture_current = true
97
- next
98
- end
99
- if capture_current && line.match(/region = /)
100
- region = line.split(' = ').last.strip
101
- capture_current = false
102
- end
103
- end
104
- end
105
-
106
- region ||= default_region
107
- return region if region
108
- end
109
-
110
- 'us-east-1' # default
111
- end
112
-
113
- private
114
- def render_path(path)
115
- RenderMePretty.result(path, context: self)
116
- end
117
-
118
- def user_data_path_for(path)
119
- "#{Lono.config.user_data_path}/#{path}"
120
- end
121
-
122
- def partial_path_for(path)
123
- "#{Lono.config.partials_path}/#{path}"
124
- end
125
-
126
- def auto_add_format(path)
127
- # Return immediately if user provided explicit extension
128
- extension = File.extname(path) # current extension
129
- return path if !extension.empty?
130
-
131
- # Else let's auto detect
132
- paths = Dir.glob("#{path}.*")
133
-
134
- if paths.size == 1 # non-ambiguous match
135
- return paths.first
136
- end
137
-
138
- if paths.size > 1 # ambiguous match
139
- puts "ERROR: Multiple possible partials found:".color(:red)
140
- paths.each do |path|
141
- puts " #{path}"
142
- end
143
- puts "Please specify an extension in the name to remove the ambiguity.".color(:green)
144
- exit 1
145
- end
146
-
147
- # Account for case when user wants to include a file with no extension at all
148
- return path if File.exist?(path) && !File.directory?(path)
149
-
150
- path # original path if this point is reached
151
- end
152
- end
@@ -1,4 +0,0 @@
1
- module Lono::Template::Strategy
2
- class Base < Lono::AbstractBase
3
- end
4
- end
@@ -1,44 +0,0 @@
1
- module Lono::Template::Strategy::Common
2
- module Helpers
3
- # Bash code that is meant to included in user-data
4
- def extract_scripts(options={})
5
- settings = setting.data["extract_scripts"] || {}
6
- options = settings.merge(options)
7
- # defaults also here in case they are removed from settings
8
- to = options[:to] || "/opt"
9
- user = options[:as] || "ec2-user"
10
-
11
- if Dir.glob("#{Lono.config.scripts_path}/*").empty?
12
- puts "WARN: you are using the extract_scripts helper method but you do not have any app/scripts.".color(:yellow)
13
- calling_line = caller[0].split(':')[0..1].join(':')
14
- puts "Called from: #{calling_line}"
15
- return ""
16
- end
17
-
18
- <<~BASH_CODE
19
- # Generated from the lono extract_scripts helper.
20
- # Downloads scripts from s3, extract them, and setup.
21
- mkdir -p #{to}
22
- aws s3 cp #{scripts_s3_path} #{to}/
23
- (
24
- cd #{to}
25
- tar zxf #{to}/#{scripts_name}
26
- chown -R #{user}:#{user} #{to}/scripts
27
- )
28
- BASH_CODE
29
- end
30
-
31
- def scripts_name
32
- File.basename(scripts_s3_path)
33
- end
34
-
35
- def scripts_s3_path
36
- upload = Lono::Script::Upload.new(@options)
37
- upload.s3_dest
38
- end
39
-
40
- def setting
41
- @setting ||= Lono::Setting.new
42
- end
43
- end
44
- end
@@ -1,14 +0,0 @@
1
- module Lono::Template::Strategy::Dsl::Builder::Helpers
2
- module CoreHelper
3
- extend Memoist
4
-
5
- def stack_name
6
- @options[:stack]
7
- end
8
-
9
- def setting
10
- Lono::Setting.new
11
- end
12
- memoize :setting
13
- end
14
- end
@@ -1,48 +0,0 @@
1
- module Lono::Template::Strategy::Dsl::Builder::Helpers
2
- module FileHelper
3
- extend Memoist
4
-
5
- def content(path)
6
- render_file(Lono.config.content_path, path)
7
- end
8
-
9
- def user_data(path)
10
- render_file(Lono.config.user_data_path, path)
11
- end
12
-
13
- def user_data_script
14
- unless @user_data_script
15
- return <<~EOL
16
- # @user_data_script variable not set. IE: @user_data_script = "configs/#{@blueprint}/user_data/boostrap.sh"
17
- # Also, make sure that "configs/#{@blueprint}/user_data/boostrap.sh" path you're using exists.
18
- EOL
19
- end
20
-
21
- if File.exist?(@user_data_script)
22
- render_path(@user_data_script)
23
- else
24
- message = "WARN: #{@user_data_script} not found"
25
- puts message.color(:yellow)
26
- "# #{message}"
27
- end
28
- end
29
-
30
- def render_file(folder, path)
31
- path = "#{folder}/#{path}"
32
- if File.exist?(path)
33
- render_path(path)
34
- else
35
- message = "WARNING: path #{path} not found"
36
- puts message.color(:yellow)
37
- puts "Called from:"
38
- puts caller[2]
39
- message
40
- end
41
- end
42
- memoize :render_file
43
-
44
- def render_path(path)
45
- RenderMePretty.result(path, context: self)
46
- end
47
- end
48
- end
@@ -1,16 +0,0 @@
1
- # Built-in helpers for the DSL form
2
- class Lono::Template::Strategy::Dsl::Builder
3
- module Helpers
4
- extend Memoist
5
-
6
- # Auto include all modules in helpers folder
7
- helpers_dir = File.expand_path("helpers", __dir__)
8
- Dir.glob("#{helpers_dir}/**/*").each do |path|
9
- next unless File.file?(path)
10
- klass = path.gsub(%r{.*/lib/},'').sub(".rb",'').camelize
11
- include klass.constantize
12
- end
13
-
14
- include Lono::Template::Strategy::Common::Helpers
15
- end
16
- end
@@ -1,30 +0,0 @@
1
- module Lono::Template::Strategy::Dsl::Builder::Section
2
- class Base
3
- include Lono::Template::Strategy::Dsl::Builder::Fn
4
- include Lono::Template::Strategy::Dsl::Builder::Helpers
5
- include Lono::Template::Strategy::Dsl::Builder::Stringify
6
-
7
- def initialize(blueprint, *definition)
8
- @blueprint = blueprint
9
- @definition = definition.flatten
10
- end
11
-
12
- private
13
- def camelize(attributes)
14
- blueprint_meta = Lono::Blueprint::Meta.new(@blueprint)
15
- target_section = self.class.to_s.split('::').last.underscore
16
- # target_section: Lono::Template::Dsl::Builder::Parameter => parameter
17
- data = if blueprint_meta.auto_camelize?(target_section)
18
- CfnCamelizer.transform(attributes)
19
- else
20
- stringify!(attributes)
21
- end
22
- clean(data)
23
- end
24
-
25
- # Remove items with nil value automatically
26
- def clean(data)
27
- Lono::Template::Strategy::Dsl::Builder::Squeezer.new(data).squeeze
28
- end
29
- end
30
- end
@@ -1,24 +0,0 @@
1
- class Lono::Template::Strategy::Dsl::Builder
2
- class Squeezer
3
- def initialize(data)
4
- @data = data
5
- end
6
-
7
- def squeeze(new_data=nil)
8
- data = new_data.nil? ? @data : new_data
9
-
10
- case data
11
- when Array
12
- data.map! { |v| squeeze(v) }
13
- when Hash
14
- data.each_with_object({}) do |(k,v), squeezed|
15
- # only remove nil and empty Array values within Hash structures
16
- squeezed[k] = squeeze(v) unless v.nil? || v.is_a?(Array) && v.empty?
17
- squeezed
18
- end
19
- else
20
- data # do not transform
21
- end
22
- end
23
- end
24
- end
@@ -1,9 +0,0 @@
1
- module Lono::Template::Strategy::Dsl::Builder::Syntax
2
- module ExtendWith
3
- def extend_with(extension)
4
- # Do nothing during the main DSL evaluation. The extend_with logical actual runs during during the
5
- # pre_evalation stage before project helpers are loaded. This allows project helper to override extend helpers.
6
- # Define the method here it does not error though.
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- # Encapsulates syntax methods so they can be included in both the Builder and Context scope
2
- class Lono::Template::Strategy::Dsl::Builder
3
- module Syntax
4
- include Fn
5
- include Lono::Template::Evaluate
6
- include Section::Methods
7
- include ParameterGroup
8
- include ExtendWith
9
- include Helpers # built-in helpers
10
- end
11
- end
@@ -1,59 +0,0 @@
1
- class Lono::Template::Strategy::Dsl
2
- class Builder
3
- include Lono::Template::Util
4
- include Lono::Template::Context::Loader
5
- include Lono::Extensions::Loader
6
-
7
- include Syntax
8
- extend Memoist
9
-
10
- def initialize(options={})
11
- @options = options
12
- @stack, @blueprint, @template, @param = Lono::Conventions.new(options).values
13
- @template_path = "#{Lono.config.templates_path}/#{@template}.rb"
14
- @parameters = [] # registry
15
- @cfn = {}
16
- end
17
-
18
- def build
19
- load_extensions # load_extensions before project helpers
20
- load_context # variables and project helpers
21
- evaluate_template_path(@template_path) # modifies @cfn
22
- finalize
23
- to_yaml
24
- write_output
25
- @cfn
26
- end
27
-
28
- # load_extensions and evaluate extend_with methods earlier than load_context so project helpers can override extensions
29
- def load_extensions # evaluates extend_with
30
- Lono::Extensions::Preparer.new(@options).run
31
- load_all_extension_helpers # after Extensions::Preparer#run
32
- end
33
-
34
- def finalize
35
- o = @options.merge(parameters: @parameters)
36
- @cfn = Finalizer.new(@cfn, o).run
37
- end
38
-
39
- def to_yaml
40
- # https://stackoverflow.com/questions/24508364/how-to-emit-yaml-in-ruby-expanding-aliases
41
- # Trick to prevent YAML from emitting aliases
42
- @cfn = YAML.load(@cfn.to_json)
43
- @results = YAML.dump(@cfn)
44
- end
45
-
46
- def write_output
47
- path = "#{Lono.config.output_path}/#{@blueprint}/templates/#{@template}.yml"
48
- ensure_parent_dir(path)
49
- IO.write(path, @results)
50
-
51
- Lono::Yamler::Validator.new(path).validate!
52
-
53
- unless @options[:quiet]
54
- pretty_path = path.sub("#{Lono.root}/",'')
55
- puts " #{pretty_path}"
56
- end
57
- end
58
- end
59
- end
@@ -1,12 +0,0 @@
1
- class Lono::Template::Strategy::Dsl
2
- class Finalizer
3
- def initialize(cfn, options={})
4
- @cfn, @options = cfn, options
5
- end
6
-
7
- def run
8
- @cfn = ParameterGroups.new(@cfn, @options[:parameters]).run
9
- @cfn
10
- end
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- module Lono::Template::Strategy
2
- class Dsl < Base
3
- attr_reader :results
4
- def run
5
- puts "Generating CloudFormation templates for blueprint #{@blueprint.color(:green)}:" unless @options[:quiet]
6
- build_template
7
- end
8
-
9
- def build_template
10
- builder = Builder.new(@options)
11
- builder.build
12
- end
13
- end
14
- end
@@ -1,82 +0,0 @@
1
- module Lono::Template::Strategy
2
- class Erb < Base
3
- include Lono::Template::Evaluate
4
- include Lono::Template::Util
5
-
6
- def initialize(options={})
7
- super
8
- @templates = []
9
- @results = {}
10
- end
11
-
12
- def run(options={})
13
- evaluate_templates
14
- build_templates
15
- write_output
16
- end
17
-
18
- # Instance eval's the template declarations in app/definitions in this order:
19
- #
20
- # app/definitions/base.rb
21
- # app/definitions/base - all files in folder
22
- # app/definitions/[Lono.env].rb
23
- # app/definitions/[Lono.env] - all files in folder
24
- #
25
- # So Lono.env specific template declarations override base template declarations.
26
- def evaluate_templates
27
- evaluate_template("base")
28
- evaluate_folder("base")
29
- evaluate_template(Lono.env)
30
- evaluate_folder(Lono.env)
31
- end
32
-
33
- def evaluate_template(name)
34
- path = "#{Lono.config.definitions_path}/#{name}.rb"
35
- evaluate_template_path(path)
36
- end
37
-
38
- def evaluate_folder(folder)
39
- paths = Dir.glob("#{Lono.config.definitions_path}/#{folder}/**/*")
40
- paths.select{ |e| File.file?(e) }.each do |path|
41
- evaluate_template_path(path)
42
- end
43
- end
44
-
45
- def template(name, &block)
46
- @templates << {name: name, block: block}
47
- end
48
-
49
- def build_templates
50
- @templates.each do |t|
51
- @results[t[:name]] = Lono::Template::Template.new(@blueprint, t[:name], t[:block], @options).build
52
- end
53
- end
54
-
55
- def write_output
56
- output_path = "#{Lono.config.output_path}/#{@blueprint}/templates"
57
- FileUtils.rm_rf(Lono.config.output_path) if @options[:clean] # removes entire output folder. params and templates
58
- FileUtils.mkdir_p(output_path)
59
- puts "Generating CloudFormation templates for blueprint #{@blueprint.color(:green)}:" unless @options[:quiet]
60
- @results.each do |name,text|
61
- path = "#{output_path}/#{name}".sub(/^\.\//,'') # strip leading '.'
62
- path += ".yml"
63
- unless @options[:quiet]
64
- pretty_path = path.sub("#{Lono.root}/",'')
65
- puts " #{pretty_path}"
66
- end
67
- ensure_parent_dir(path)
68
- text = commented(text)
69
- IO.write(path, text) # write file first so validate method is simpler
70
- Lono::Yamler::Validator.new(path).validate!
71
- end
72
- end
73
-
74
- def commented(text)
75
- comment =<<~EOS
76
- # This file was generated with lono. Do not edit directly, the changes will be lost.
77
- # More info: http://lono.cloud
78
- EOS
79
- "#{comment}#{text}"
80
- end
81
- end
82
- end
@@ -1,8 +0,0 @@
1
- module Lono::Template::Strategy
2
- # url or path
3
- class Source < Base
4
- def run
5
- Lono::Cfn::Download.new(@options).run
6
- end
7
- end
8
- end
@@ -1,54 +0,0 @@
1
- require 'erb'
2
- require 'json'
3
- require 'base64'
4
-
5
- class Lono::Template::Template
6
- include ERB::Util
7
-
8
- # Main template Erb methods are: source and variables
9
- #
10
- # template "example-2" do
11
- # source "example"
12
- # variables(test: 1)
13
- # end
14
- #
15
- attr_reader :name
16
- def initialize(blueprint, name, block=nil, options={})
17
- @blueprint, @name, @block, @options = blueprint, name, block, options
18
- @source_path = default_source_path(name)
19
- end
20
-
21
- # Returns path, example: ./app/templates/example.yml
22
- def source(path)
23
- @source_path = path[0..0] == '/' ? path : "#{Lono.config.templates_path}/#{path}"
24
- @source_path += ".yml"
25
- end
26
-
27
- def variables(vars={})
28
- vars.each do |var,value|
29
- context.instance_variable_set("@#{var}", value)
30
- end
31
- end
32
-
33
- # internal methods
34
- def default_source_path(name)
35
- "#{Lono.config.templates_path}/#{name}.yml" # defaults to name, source method overrides
36
- end
37
-
38
- def build
39
- instance_eval(&@block) if @block
40
-
41
- if File.exist?(@source_path)
42
- RenderMePretty.result(@source_path, context: context)
43
- else
44
- puts "ERROR: #{@source_path} does not exist, but it was used as a template source.".color(:red)
45
- exit 1
46
- end
47
- end
48
-
49
- # Context for ERB rendering.
50
- # This is where we control what references get passed to the ERB rendering.
51
- def context
52
- @context ||= Lono::Template::Context.new(@options)
53
- end
54
- end
@@ -1,23 +0,0 @@
1
- require 'erb'
2
- require 'json'
3
- require 'base64'
4
- require 'digest'
5
-
6
- class Lono::Template
7
- class Upload < Lono::AbstractBase
8
- def initialize(options={})
9
- super
10
- @checksums = {}
11
- @prefix = Lono.env # s3://s3-bucket/development
12
- end
13
-
14
- def run
15
- puts "Uploading CloudFormation templates..."
16
- paths = Dir.glob("#{Lono.config.output_path}/#{@blueprint}/templates/**/*")
17
- paths.select { |p| File.file?(p) }.each do |path|
18
- Lono::S3::Uploader.new(path).upload
19
- end
20
- puts "Templates uploaded to s3."
21
- end
22
- end
23
- end
@@ -1,8 +0,0 @@
1
- class Lono::Template
2
- module Util
3
- def ensure_parent_dir(path)
4
- dir = File.dirname(path)
5
- FileUtils.mkdir_p(dir) unless File.exist?(dir)
6
- end
7
- end
8
- end
data/lib/lono/template.rb DELETED
@@ -1,24 +0,0 @@
1
- module Lono
2
- class Template < Command
3
- class_option :quiet, type: :boolean, desc: "silence the output"
4
- class_option :noop, type: :boolean, desc: "noop mode, do nothing destructive"
5
-
6
- desc "generate BLUEPRINT", "Generate the CloudFormation templates"
7
- long_desc Lono::Help.text("template/generate")
8
- option :clean, type: :boolean, desc: "remove all output files before generating"
9
- def generate(blueprint)
10
- Generator.new(options.merge(blueprint: blueprint)).run
11
- end
12
-
13
- desc "upload", "Uploads templates to configured s3 folder"
14
- def upload(blueprint)
15
- Upload.new(options.merge(blueprint: blueprint)).run
16
- end
17
-
18
- desc "bashify URL-OR-PATH", "Convert the UserData section of an existing CloudFormation Template to a starter bash script that is compatiable with lono"
19
- long_desc Lono::Help.text("template/bashify")
20
- def bashify(path)
21
- Bashify.new(options.merge(path: path)).run
22
- end
23
- end
24
- end
data/lib/lono/upgrade.rb DELETED
@@ -1,20 +0,0 @@
1
- module Lono
2
- class Upgrade
3
- def initialize(options)
4
- @options = options
5
- end
6
-
7
- def run
8
- app_blueprints_move # v6 to v7
9
- puts "Lono project upgraded"
10
- end
11
-
12
- def app_blueprints_move
13
- return if File.exist?("#{Lono.root}/app/blueprints")
14
- return unless File.exist?("#{Lono.root}/blueprints")
15
-
16
- FileUtils.mv("#{Lono.root}/blueprints", "#{Lono.root}/app/blueprints")
17
- puts "Move blueprints to app/blueprints"
18
- end
19
- end
20
- end