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.
- checksums.yaml +4 -4
- data/.cody/README.md +5 -15
- data/.cody/acceptance/bin/build.sh +52 -0
- data/.cody/acceptance/buildspec.yml +10 -0
- data/.cody/acceptance/project.rb +6 -0
- data/.cody/{role.rb → acceptance/role.rb} +0 -0
- data/.cody/shared/script/install/lono.sh +40 -0
- data/.cody/shared/script/install.sh +5 -0
- data/CHANGELOG.md +46 -5
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +3 -1
- data/LICENSE.txt +201 -1
- data/README.md +6 -11
- data/lib/lono/api/client.rb +3 -2
- data/lib/lono/app/callable_option/concern.rb +12 -0
- data/lib/lono/app/callable_option.rb +56 -0
- data/lib/lono/app/inits.rb +13 -0
- data/lib/lono/app.rb +73 -0
- data/lib/lono/autoloader.rb +3 -2
- data/lib/lono/aws_services/helper.rb +41 -6
- data/lib/lono/aws_services.rb +37 -6
- data/lib/lono/blueprint.rb +3 -11
- data/lib/lono/booter.rb +28 -0
- data/lib/lono/builder/allow/base.rb +54 -0
- data/lib/lono/builder/allow/env.rb +17 -0
- data/lib/lono/builder/allow/region.rb +20 -0
- data/lib/lono/builder/allow.rb +8 -0
- data/lib/lono/builder/configset/combiner.rb +145 -0
- data/lib/lono/builder/configset/definition/base.rb +47 -0
- data/lib/lono/builder/configset/definition/context.rb +29 -0
- data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/auth.rb +1 -1
- data/lib/lono/{configset/strategy/helpers/dsl/core.rb → builder/configset/definition/dsl/syntax/content.rb} +11 -3
- data/lib/lono/{configset/strategy/helpers/dsl/syntax.rb → builder/configset/definition/dsl/syntax/core.rb} +15 -9
- data/lib/lono/{configset/strategy/helpers/dsl → builder/configset/definition/dsl/syntax}/package.rb +1 -1
- data/lib/lono/builder/configset/definition/dsl/syntax.rb +5 -0
- data/lib/lono/{configset/strategy → builder/configset/definition}/dsl.rb +10 -14
- data/lib/lono/{configset/strategy → builder/configset/definition}/erb.rb +13 -16
- data/lib/lono/builder/configset/definition.rb +18 -0
- data/lib/lono/builder/configset/evaluator.rb +10 -0
- data/lib/lono/builder/configset/registration.rb +35 -0
- data/lib/lono/builder/context.rb +40 -0
- data/lib/lono/builder/dsl/evaluator.rb +45 -0
- data/lib/lono/builder/dsl/finalizer/base.rb +8 -0
- data/lib/lono/builder/dsl/finalizer/configsets.rb +20 -0
- data/lib/lono/builder/dsl/finalizer/files/base.rb +4 -0
- data/lib/lono/builder/dsl/finalizer/files/build.rb +58 -0
- data/lib/lono/builder/dsl/finalizer/files/replace.rb +31 -0
- data/lib/lono/builder/dsl/finalizer/files.rb +9 -0
- data/lib/lono/{template/strategy → builder}/dsl/finalizer/parameter_groups.rb +6 -5
- data/lib/lono/builder/dsl/finalizer.rb +15 -0
- data/lib/lono/{template/strategy/dsl/builder/helpers/ec2_helper.rb → builder/dsl/helpers/ec2.rb} +3 -3
- data/lib/lono/builder/dsl/helpers/files.rb +7 -0
- data/lib/lono/builder/dsl/helpers/partials.rb +140 -0
- data/lib/lono/{template/strategy/dsl/builder/helpers/s3_helper.rb → builder/dsl/helpers/s3.rb} +3 -3
- data/lib/lono/{template/context/ssm_fetcher.rb → builder/dsl/helpers/ssm/fetcher.rb} +5 -3
- data/lib/lono/{template/context/helpers.rb → builder/dsl/helpers/ssm.rb} +3 -3
- data/lib/lono/{template/strategy/dsl/builder/helpers/stack_helper.rb → builder/dsl/helpers/stack.rb} +14 -9
- data/lib/lono/{template/strategy/dsl/builder/helpers/tags_helper.rb → builder/dsl/helpers/tags.rb} +2 -2
- data/lib/lono/builder/dsl/helpers/template_file.rb +66 -0
- data/lib/lono/builder/dsl/helpers.rb +5 -0
- data/lib/lono/builder/dsl/syntax/core/base.rb +22 -0
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/condition.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/mapping.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/output.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/parameter.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource/property_mover.rb +12 -2
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/resource.rb +1 -1
- data/lib/lono/{template/strategy/dsl/builder/section → builder/dsl/syntax/core}/section.rb +1 -1
- data/lib/lono/builder/dsl/syntax/core/squeezer.rb +38 -0
- data/lib/lono/{template/strategy/dsl/builder/section/methods.rb → builder/dsl/syntax/core.rb} +8 -8
- data/lib/lono/{template/strategy/dsl/builder → builder/dsl/syntax}/fn.rb +2 -2
- data/lib/lono/{template/strategy/dsl/builder → builder/dsl}/syntax/parameter_group.rb +1 -1
- data/lib/lono/builder/dsl/syntax.rb +9 -0
- data/lib/lono/builder/dsl.rb +14 -0
- data/lib/lono/{param/generator.rb → builder/param.rb} +24 -22
- data/lib/lono/builder/template/aws_service.rb +15 -0
- data/lib/lono/builder/template/bashify.rb +43 -0
- data/lib/lono/{output/template.rb → builder/template/output.rb} +14 -7
- data/lib/lono/{template → builder/template}/post_processor.rb +4 -4
- data/lib/lono/builder/template/upload.rb +8 -0
- data/lib/lono/builder/template.rb +55 -0
- data/lib/lono/{template/strategy/dsl/builder → builder/util}/stringify.rb +1 -1
- data/lib/lono/bundler/cli/base.rb +10 -0
- data/lib/lono/bundler/cli/bundle.rb +44 -0
- data/lib/lono/bundler/cli/clean.rb +27 -0
- data/lib/lono/bundler/cli/help/bundle.md +3 -0
- data/lib/lono/bundler/cli/help.rb +11 -0
- data/lib/lono/bundler/cli.rb +7 -0
- data/lib/lono/bundler/component/concerns/local_concern.rb +10 -0
- data/lib/lono/bundler/component/concerns/notation_concern.rb +59 -0
- data/lib/lono/bundler/component/concerns/path_concern.rb +68 -0
- data/lib/lono/bundler/component/concerns/stack_concern.rb +60 -0
- data/lib/lono/bundler/component/fetcher/base.rb +27 -0
- data/lib/lono/bundler/component/fetcher/gcs.rb +69 -0
- data/lib/lono/bundler/component/fetcher/git.rb +69 -0
- data/lib/lono/bundler/component/fetcher/local.rb +15 -0
- data/lib/lono/bundler/component/fetcher/s3.rb +66 -0
- data/lib/lono/bundler/component/fetcher.rb +18 -0
- data/lib/lono/bundler/component/http/concern.rb +45 -0
- data/lib/lono/bundler/component/http/source.rb +19 -0
- data/lib/lono/bundler/component/org_repo.rb +65 -0
- data/lib/lono/bundler/component/props/extension.rb +18 -0
- data/lib/lono/bundler/component/props/typer.rb +41 -0
- data/lib/lono/bundler/component/props.rb +122 -0
- data/lib/lono/bundler/component/registry.rb +136 -0
- data/lib/lono/bundler/component.rb +52 -0
- data/lib/lono/bundler/config.rb +18 -0
- data/lib/lono/bundler/dsl/syntax.rb +46 -0
- data/lib/lono/bundler/dsl.rb +21 -0
- data/lib/lono/bundler/exporter/base.rb +6 -0
- data/lib/lono/bundler/exporter/copy.rb +22 -0
- data/lib/lono/bundler/exporter.rb +50 -0
- data/lib/lono/bundler/extract/tar.rb +33 -0
- data/lib/lono/bundler/extract/zip.rb +16 -0
- data/lib/lono/bundler/info.rb +39 -0
- data/lib/lono/bundler/list.rb +26 -0
- data/lib/lono/bundler/lockfile/version_comparer.rb +56 -0
- data/lib/lono/bundler/lockfile/yamler.rb +36 -0
- data/lib/lono/bundler/lockfile.rb +66 -0
- data/lib/lono/bundler/lonofile.rb +32 -0
- data/lib/lono/bundler/runner.rb +27 -0
- data/lib/lono/bundler/syncer.rb +70 -0
- data/lib/lono/bundler/util/git.rb +37 -0
- data/lib/lono/bundler/util/logging.rb +7 -0
- data/lib/lono/bundler/util/sure.rb +5 -0
- data/lib/lono/{bundle.rb → bundler.rb} +38 -4
- data/lib/lono/cfn/base.rb +9 -195
- data/lib/lono/cfn/cancel.rb +12 -29
- data/lib/lono/cfn/concerns/build.rb +10 -0
- data/lib/lono/cfn/concerns/template_output.rb +10 -0
- data/lib/lono/cfn/concerns.rb +43 -0
- data/lib/lono/cfn/delete.rb +8 -32
- data/lib/lono/cfn/deploy/base.rb +4 -0
- data/lib/lono/cfn/deploy/iam.rb +48 -0
- data/lib/lono/cfn/deploy/notification.rb +8 -0
- data/lib/lono/cfn/deploy/operable.rb +18 -0
- data/lib/lono/cfn/deploy/opts.rb +49 -0
- data/lib/lono/cfn/deploy/rollback.rb +46 -0
- data/lib/lono/cfn/deploy/tags.rb +18 -0
- data/lib/lono/cfn/deploy.rb +100 -5
- data/lib/lono/cfn/download.rb +4 -7
- data/lib/lono/cfn/output.rb +49 -0
- data/lib/lono/cfn/plan/base.rb +19 -0
- data/lib/lono/cfn/plan/changeset/base.rb +19 -0
- data/lib/lono/cfn/plan/changeset/notifications.rb +24 -0
- data/lib/lono/cfn/plan/changeset/outputs.rb +25 -0
- data/lib/lono/cfn/plan/changeset/resources.rb +48 -0
- data/lib/lono/cfn/plan/changeset/tags.rb +16 -0
- data/lib/lono/cfn/plan/changeset.rb +136 -0
- data/lib/lono/cfn/plan/concerns.rb +10 -0
- data/lib/lono/cfn/plan/delete.rb +16 -0
- data/lib/lono/cfn/plan/diff/base.rb +10 -0
- data/lib/lono/cfn/plan/diff/data.rb +62 -0
- data/lib/lono/cfn/plan/diff/file.rb +57 -0
- data/lib/lono/cfn/plan/new.rb +26 -0
- data/lib/lono/cfn/{preview → plan}/param.rb +26 -34
- data/lib/lono/cfn/plan/summary.rb +16 -0
- data/lib/lono/cfn/plan/template.rb +28 -0
- data/lib/lono/cfn/plan.rb +34 -0
- data/lib/lono/cfn/show.rb +30 -0
- data/lib/lono/cfn/status.rb +1 -1
- data/lib/lono/cli/abstract.rb +11 -0
- data/lib/lono/cli/base.rb +11 -0
- data/lib/lono/cli/build.rb +47 -0
- data/lib/lono/cli/bundle.rb +21 -0
- data/lib/lono/cli/cfn/opts.rb +59 -0
- data/lib/lono/cli/cfn.rb +19 -0
- data/lib/lono/cli/clean.rb +23 -0
- data/lib/lono/cli/code.rb +22 -0
- data/lib/lono/{completion.rb → cli/completion.rb} +2 -2
- data/lib/lono/{help → cli/help}/blueprint/new.md +4 -4
- data/lib/lono/{help/generate.md → cli/help/build.md} +6 -6
- data/lib/lono/{help → cli/help}/cfn/cancel.md +0 -0
- data/lib/lono/cli/help/cfn/download.md +3 -0
- data/lib/lono/{help → cli/help}/cfn/preview.md +9 -8
- data/lib/lono/{help → cli/help}/cfn/status.md +0 -1
- data/lib/lono/cli/help/cfn.md +4 -0
- data/lib/lono/{help → cli/help}/code/convert.md +0 -0
- data/lib/lono/{help → cli/help}/code/import.md +2 -2
- data/lib/lono/{help → cli/help}/completion.md +3 -3
- data/lib/lono/{help → cli/help}/completion_script.md +0 -0
- data/lib/lono/{help → cli/help}/configsets.md +0 -0
- data/lib/lono/cli/help/down.md +13 -0
- data/lib/lono/cli/help/new/helper/blueprint.md +17 -0
- data/lib/lono/cli/help/new/helper/project.md +16 -0
- data/lib/lono/cli/help/new/project.md +34 -0
- data/lib/lono/{help → cli/help}/param/generate.md +0 -0
- data/lib/lono/cli/help/param.md +6 -0
- data/lib/lono/{help → cli/help}/pro/blueprints.md +0 -0
- data/lib/lono/{help → cli/help}/pro/configsets.md +0 -0
- data/lib/lono/{help → cli/help}/script/build.md +0 -0
- data/lib/lono/{help → cli/help}/script/upload.md +0 -0
- data/lib/lono/cli/help/seed.md +24 -0
- data/lib/lono/cli/help/summary.md +33 -0
- data/lib/lono/{help → cli/help}/template/bashify.md +0 -0
- data/lib/lono/cli/help/template/generate.md +7 -0
- data/lib/lono/{help → cli/help}/template.md +0 -0
- data/lib/lono/cli/help/up.md +30 -0
- data/lib/lono/{help → cli/help}/user_data.md +3 -3
- data/lib/lono/cli/help.rb +56 -0
- data/lib/lono/cli/list.rb +25 -0
- data/lib/lono/cli/new/blueprint.rb +29 -0
- data/lib/lono/cli/new/concerns.rb +16 -0
- data/lib/lono/cli/new/configset.rb +37 -0
- data/lib/lono/{extension/new.rb → cli/new/extension.rb} +2 -10
- data/lib/lono/cli/new/helper/blueprint.rb +26 -0
- data/lib/lono/cli/new/helper/project.rb +24 -0
- data/lib/lono/cli/new/helper.rb +13 -0
- data/lib/lono/cli/new/project.rb +77 -0
- data/lib/lono/cli/new/sequence.rb +56 -0
- data/lib/lono/cli/new/shim.rb +59 -0
- data/lib/lono/cli/new/test/blueprint.rb +23 -0
- data/lib/lono/cli/new/test/sequence.rb +10 -0
- data/lib/lono/cli/new/test.rb +8 -0
- data/lib/lono/cli/new.rb +27 -0
- data/lib/lono/{opts.rb → cli/opts.rb} +9 -12
- data/lib/lono/{s3.rb → cli/s3.rb} +9 -7
- data/lib/lono/cli/script/base.rb +5 -0
- data/lib/lono/cli/script/build.rb +72 -0
- data/lib/lono/cli/script/upload.rb +49 -0
- data/lib/lono/{script.rb → cli/script.rb} +2 -2
- data/lib/lono/cli/seed.rb +9 -0
- data/lib/lono/cli/status.rb +18 -0
- data/lib/lono/cli/test.rb +35 -0
- data/lib/lono/cli.rb +78 -109
- data/lib/lono/command.rb +27 -1
- data/lib/lono/component.rb +29 -0
- data/lib/lono/concerns/aws_info.rb +14 -0
- data/lib/lono/concerns/names.rb +9 -0
- data/lib/lono/configset.rb +11 -10
- data/lib/lono/core.rb +25 -54
- data/lib/lono/ext/core/module.rb +31 -0
- data/lib/lono/ext/core/object.rb +32 -0
- data/lib/lono/ext/core/string.rb +9 -0
- data/lib/lono/ext.rb +4 -0
- data/lib/lono/files/base.rb +12 -0
- data/lib/lono/files/builder.rb +37 -0
- data/lib/lono/files/compressor.rb +53 -0
- data/lib/lono/files/concerns/post_processing.rb +35 -0
- data/lib/lono/files/concerns/registration.rb +13 -0
- data/lib/lono/files/registry.rb +6 -0
- data/lib/lono/files.rb +37 -0
- data/lib/lono/importer/base.rb +6 -6
- data/lib/lono/importer/download.rb +7 -7
- data/lib/lono/importer/dsl.rb +3 -3
- data/lib/lono/importer/service/coder.rb +67 -63
- data/lib/lono/importer.rb +1 -10
- data/lib/lono/inspector/base.rb +7 -7
- data/lib/lono/inspector/summary.rb +18 -19
- data/lib/lono/layering/layer.rb +112 -0
- data/lib/lono/layering.rb +13 -55
- data/lib/lono/logger/formatter.rb +13 -0
- data/lib/lono/logger.rb +32 -0
- data/lib/lono/names.rb +50 -0
- data/lib/lono/plugin/meta.rb +30 -0
- data/lib/lono/plugin/tester.rb +13 -0
- data/lib/lono/plugin.rb +10 -0
- data/lib/lono/s3/aws_setup.rb +4 -3
- data/lib/lono/s3/bucket.rb +42 -42
- data/lib/lono/s3/rollback.rb +8 -0
- data/lib/lono/s3/uploader.rb +33 -34
- data/lib/lono/script/base.rb +3 -3
- data/lib/lono/script/build.rb +11 -12
- data/lib/lono/script/upload.rb +7 -7
- data/lib/lono/seeder.rb +110 -0
- data/lib/lono/user_data.rb +10 -13
- data/lib/lono/utils/logging.rb +7 -0
- data/lib/lono/utils/{pretty_time.rb → pretty.rb} +6 -2
- data/lib/lono/utils/quit.rb +7 -0
- data/lib/lono/utils/rsync.rb +4 -2
- data/lib/lono/utils/sure.rb +4 -4
- data/lib/lono/version.rb +1 -1
- data/lib/lono/yamler/validator.rb +7 -22
- data/lib/lono.rb +15 -12
- data/lib/templates/blueprint/template.rb +2 -0
- data/lib/templates/configset/configset.rb +2 -0
- data/lib/templates/examples/blueprint/template.rb +9 -0
- data/lib/templates/{configset/lib → examples/configset}/configset.rb +0 -0
- data/lib/templates/helper/%underscore_name%_helper.rb.tt +6 -0
- data/lib/templates/{skeleton → project}/.gitignore +1 -2
- data/lib/templates/project/Gemfile.tt +11 -0
- data/lib/templates/project/README.md +9 -0
- data/lib/templates/project/config/app.rb +3 -0
- data/lib/templates/shim/lono +7 -0
- data/lono.gemspec +51 -44
- metadata +282 -296
- data/.circleci/README.md +0 -3
- data/.circleci/config.yml +0 -58
- data/.cody/acceptance.sh +0 -49
- data/.cody/buildspec.yml +0 -9
- data/.cody/demo.rb +0 -38
- data/.cody/project.rb +0 -6
- data/.gitmodules +0 -3
- data/lib/lono/abstract_base.rb +0 -25
- data/lib/lono/app_file/base.rb +0 -28
- data/lib/lono/app_file/build/lambda_layer/ruby_packager.rb +0 -153
- data/lib/lono/app_file/build/lambda_layer.rb +0 -20
- data/lib/lono/app_file/build.rb +0 -84
- data/lib/lono/app_file/registry/item.rb +0 -24
- data/lib/lono/app_file/registry.rb +0 -16
- data/lib/lono/app_file/upload.rb +0 -12
- data/lib/lono/aws_services/stack.rb +0 -41
- data/lib/lono/aws_services/stack_set.rb +0 -41
- data/lib/lono/blueprint/configset/loader.rb +0 -7
- data/lib/lono/blueprint/helper.rb +0 -24
- data/lib/lono/blueprint/meta.rb +0 -30
- data/lib/lono/blueprint/new.rb +0 -127
- data/lib/lono/blueprint/root.rb +0 -25
- data/lib/lono/cfn/create.rb +0 -41
- data/lib/lono/cfn/opts.rb +0 -88
- data/lib/lono/cfn/preview/changeset.rb +0 -168
- data/lib/lono/cfn/preview/codediff.rb +0 -41
- data/lib/lono/cfn/preview/diff_viewer.rb +0 -23
- data/lib/lono/cfn/rollback.rb +0 -26
- data/lib/lono/cfn/update.rb +0 -71
- data/lib/lono/cfn.rb +0 -75
- data/lib/lono/clean.rb +0 -14
- data/lib/lono/code.rb +0 -22
- data/lib/lono/configset/combiner.rb +0 -162
- data/lib/lono/configset/evaluate_file.rb +0 -8
- data/lib/lono/configset/generator.rb +0 -57
- data/lib/lono/configset/list.rb +0 -67
- data/lib/lono/configset/meta/dsl.rb +0 -12
- data/lib/lono/configset/meta.rb +0 -19
- data/lib/lono/configset/new.rb +0 -77
- data/lib/lono/configset/preparer.rb +0 -44
- data/lib/lono/configset/register/base.rb +0 -122
- data/lib/lono/configset/register/blueprint.rb +0 -16
- data/lib/lono/configset/register/dsl.rb +0 -14
- data/lib/lono/configset/register/project.rb +0 -13
- data/lib/lono/configset/resolver.rb +0 -47
- data/lib/lono/configset/s3_file/build.rb +0 -33
- data/lib/lono/configset/s3_file/item.rb +0 -38
- data/lib/lono/configset/s3_file/registry.rb +0 -12
- data/lib/lono/configset/s3_file/upload.rb +0 -12
- data/lib/lono/configset/strategy/base.rb +0 -83
- data/lib/lono/configset/strategy/helpers/dsl.rb +0 -8
- data/lib/lono/configset/strategy/helpers/erb.rb +0 -9
- data/lib/lono/conventions.rb +0 -23
- data/lib/lono/core/config.rb +0 -22
- data/lib/lono/default/settings.yml +0 -21
- data/lib/lono/extension/helper.rb +0 -13
- data/lib/lono/extension/list.rb +0 -40
- data/lib/lono/extension.rb +0 -9
- data/lib/lono/extensions/dsl.rb +0 -11
- data/lib/lono/extensions/loader.rb +0 -30
- data/lib/lono/extensions/preparer.rb +0 -26
- data/lib/lono/extensions/register.rb +0 -15
- data/lib/lono/extensions.rb +0 -18
- data/lib/lono/file_uploader.rb +0 -21
- data/lib/lono/finder/base.rb +0 -152
- data/lib/lono/finder/blueprint/configset.rb +0 -17
- data/lib/lono/finder/blueprint.rb +0 -11
- data/lib/lono/finder/configset.rb +0 -11
- data/lib/lono/finder/extension.rb +0 -11
- data/lib/lono/generate.rb +0 -111
- data/lib/lono/help/cfn/create.md +0 -26
- data/lib/lono/help/cfn/delete.md +0 -13
- data/lib/lono/help/cfn/deploy.md +0 -21
- data/lib/lono/help/cfn/download.md +0 -3
- data/lib/lono/help/cfn/update.md +0 -49
- data/lib/lono/help/cfn.md +0 -7
- data/lib/lono/help/new.md +0 -57
- data/lib/lono/help/param.md +0 -6
- data/lib/lono/help/seed.md +0 -23
- data/lib/lono/help/set_instances/delete.md +0 -21
- data/lib/lono/help/set_instances/deploy.md +0 -31
- data/lib/lono/help/set_instances/list.md +0 -14
- data/lib/lono/help/set_instances/status.md +0 -15
- data/lib/lono/help/set_instances/sync.md +0 -92
- data/lib/lono/help/sets/delete.md +0 -8
- data/lib/lono/help/sets/deploy.md +0 -76
- data/lib/lono/help/sets/status.md +0 -23
- data/lib/lono/help/summary.md +0 -33
- data/lib/lono/help/template/generate.md +0 -7
- data/lib/lono/help/upgrade.md +0 -1
- data/lib/lono/help/xgraph.md +0 -16
- data/lib/lono/help.rb +0 -15
- data/lib/lono/importer/erb.rb +0 -31
- data/lib/lono/inspector/graph.rb +0 -125
- data/lib/lono/jade/circular.rb +0 -26
- data/lib/lono/jade/materializer/final.rb +0 -10
- data/lib/lono/jade/materializer/gems_builder.rb +0 -81
- data/lib/lono/jade/materializer/source.rb +0 -54
- data/lib/lono/jade/materializer.rb +0 -15
- data/lib/lono/jade/registry.rb +0 -64
- data/lib/lono/jade.rb +0 -110
- data/lib/lono/jadespec.rb +0 -68
- data/lib/lono/new/helper.rb +0 -15
- data/lib/lono/new.rb +0 -95
- data/lib/lono/param.rb +0 -14
- data/lib/lono/pro/base.rb +0 -16
- data/lib/lono/pro/repo.rb +0 -28
- data/lib/lono/pro.rb +0 -15
- data/lib/lono/project_checker.rb +0 -35
- data/lib/lono/registration/base.rb +0 -37
- data/lib/lono/registration/check.rb +0 -15
- data/lib/lono/registration/temp.rb +0 -53
- data/lib/lono/registration/user.rb +0 -60
- data/lib/lono/seed/base.rb +0 -116
- data/lib/lono/seed/service_role.rb +0 -11
- data/lib/lono/seed.rb +0 -39
- data/lib/lono/sequence.rb +0 -35
- data/lib/lono/set_instances/base.rb +0 -30
- data/lib/lono/set_instances/changeable.rb +0 -53
- data/lib/lono/set_instances/create.rb +0 -7
- data/lib/lono/set_instances/delete.rb +0 -47
- data/lib/lono/set_instances/deploy.rb +0 -52
- data/lib/lono/set_instances/list.rb +0 -13
- data/lib/lono/set_instances/opts.rb +0 -37
- data/lib/lono/set_instances/status.rb +0 -12
- data/lib/lono/set_instances/sync.rb +0 -181
- data/lib/lono/set_instances/update.rb +0 -15
- data/lib/lono/set_instances.rb +0 -54
- data/lib/lono/sets/base.rb +0 -50
- data/lib/lono/sets/create.rb +0 -27
- data/lib/lono/sets/delete.rb +0 -43
- data/lib/lono/sets/deploy.rb +0 -11
- data/lib/lono/sets/list.rb +0 -35
- data/lib/lono/sets/opts.rb +0 -18
- data/lib/lono/sets/preview/codediff.rb +0 -35
- data/lib/lono/sets/preview/param.rb +0 -32
- data/lib/lono/sets/status/instance/base.rb +0 -120
- data/lib/lono/sets/status/instance/completed.rb +0 -35
- data/lib/lono/sets/status/instance/deleted.rb +0 -32
- data/lib/lono/sets/status/instance/show.rb +0 -7
- data/lib/lono/sets/status/instance.rb +0 -20
- data/lib/lono/sets/status/instances.rb +0 -136
- data/lib/lono/sets/status.rb +0 -128
- data/lib/lono/sets/summarize.rb +0 -22
- data/lib/lono/sets/time_spent.rb +0 -11
- data/lib/lono/sets/update.rb +0 -74
- data/lib/lono/sets/waiter.rb +0 -23
- data/lib/lono/sets.rb +0 -34
- data/lib/lono/setting.rb +0 -75
- data/lib/lono/template/aws_service.rb +0 -20
- data/lib/lono/template/bashify.rb +0 -39
- data/lib/lono/template/configset_injector.rb +0 -52
- data/lib/lono/template/context/loader/load_files.rb +0 -24
- data/lib/lono/template/context/loader.rb +0 -52
- data/lib/lono/template/context.rb +0 -29
- data/lib/lono/template/evaluate.rb +0 -40
- data/lib/lono/template/generator.rb +0 -23
- data/lib/lono/template/helper.rb +0 -152
- data/lib/lono/template/strategy/base.rb +0 -4
- data/lib/lono/template/strategy/common/helpers.rb +0 -44
- data/lib/lono/template/strategy/dsl/builder/helpers/core_helper.rb +0 -14
- data/lib/lono/template/strategy/dsl/builder/helpers/file_helper.rb +0 -48
- data/lib/lono/template/strategy/dsl/builder/helpers.rb +0 -16
- data/lib/lono/template/strategy/dsl/builder/section/base.rb +0 -30
- data/lib/lono/template/strategy/dsl/builder/squeezer.rb +0 -24
- data/lib/lono/template/strategy/dsl/builder/syntax/extend_with.rb +0 -9
- data/lib/lono/template/strategy/dsl/builder/syntax.rb +0 -11
- data/lib/lono/template/strategy/dsl/builder.rb +0 -59
- data/lib/lono/template/strategy/dsl/finalizer.rb +0 -12
- data/lib/lono/template/strategy/dsl.rb +0 -14
- data/lib/lono/template/strategy/erb.rb +0 -82
- data/lib/lono/template/strategy/source.rb +0 -8
- data/lib/lono/template/template.rb +0 -54
- data/lib/lono/template/upload.rb +0 -23
- data/lib/lono/template/util.rb +0 -8
- data/lib/lono/template.rb +0 -24
- data/lib/lono/upgrade.rb +0 -20
- data/lib/lono/utils/generators/tree.rb +0 -18
- data/lib/lono/utils/item/file_methods.rb +0 -29
- data/lib/lono/utils/item/zip.rb +0 -42
- data/lib/templates/blueprint/%blueprint_name%.gemspec.tt +0 -45
- data/lib/templates/blueprint/.gitignore +0 -11
- data/lib/templates/blueprint/CHANGELOG.md +0 -7
- data/lib/templates/blueprint/Gemfile +0 -4
- data/lib/templates/blueprint/README.md.tt +0 -33
- data/lib/templates/blueprint/Rakefile.tt +0 -9
- data/lib/templates/blueprint/seed/configs.rb +0 -28
- data/lib/templates/blueprint_types/dsl/app/templates/%blueprint_name%.rb +0 -36
- data/lib/templates/blueprint_types/dsl/app/user_data/bootstrap.sh +0 -2
- data/lib/templates/blueprint_types/erb/app/definitions/base.rb.tt +0 -1
- data/lib/templates/blueprint_types/erb/app/templates/%blueprint_name%.yml +0 -67
- data/lib/templates/configset/%configset_name%.gemspec.tt +0 -42
- data/lib/templates/configset/.gitignore +0 -10
- data/lib/templates/configset/CHANGELOG.md +0 -7
- data/lib/templates/configset/Gemfile +0 -4
- data/lib/templates/configset/README.md.tt +0 -3
- data/lib/templates/configset/Rakefile.tt +0 -9
- data/lib/templates/extension/%extension_name%.gemspec.tt +0 -46
- data/lib/templates/extension/.gitignore +0 -11
- data/lib/templates/extension/.rspec +0 -3
- data/lib/templates/extension/CHANGELOG.md +0 -7
- data/lib/templates/extension/Gemfile.tt +0 -4
- data/lib/templates/extension/Rakefile.tt +0 -9
- data/lib/templates/extension/spec/spec_helper.rb.tt +0 -29
- data/lib/templates/skeleton/Gemfile +0 -3
- data/lib/templates/skeleton/README.md +0 -58
- data/lib/templates/skeleton/configs/settings.yml +0 -13
- data/vendor/cfn-status/CHANGELOG.md +0 -14
- data/vendor/cfn-status/Gemfile +0 -4
- data/vendor/cfn-status/Gemfile.lock +0 -49
- data/vendor/cfn-status/LICENSE.txt +0 -21
- data/vendor/cfn-status/README.md +0 -58
- data/vendor/cfn-status/Rakefile +0 -6
- data/vendor/cfn-status/bin/console +0 -14
- data/vendor/cfn-status/bin/setup +0 -8
- data/vendor/cfn-status/cfn-status.gemspec +0 -30
- data/vendor/cfn-status/lib/cfn-status.rb +0 -1
- data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
- data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
- data/vendor/cfn-status/lib/cfn_status.rb +0 -245
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
- data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
- data/vendor/cfn-status/spec/spec_helper.rb +0 -14
data/lib/lono/template/helper.rb
DELETED
|
@@ -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,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,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,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,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
|
data/lib/lono/template/upload.rb
DELETED
|
@@ -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
|
data/lib/lono/template/util.rb
DELETED
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
|