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/cli.rb
CHANGED
|
@@ -1,115 +1,116 @@
|
|
|
1
1
|
module Lono
|
|
2
2
|
class CLI < Command
|
|
3
|
+
include Help
|
|
3
4
|
include Thor::Actions # for add_runtime_options
|
|
4
5
|
opts = Opts.new(self)
|
|
6
|
+
cfn_opts = Lono::CLI::Cfn::Opts.new(self)
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
desc "build BLUEPRINT", "Build template"
|
|
9
|
+
long_desc Help.text(:build)
|
|
10
|
+
option :quiet, type: :boolean, desc: "silence the output"
|
|
11
|
+
opts.clean
|
|
12
|
+
def build(blueprint)
|
|
13
|
+
Build.new(options.merge(blueprint: blueprint, build_only: true)).all
|
|
9
14
|
end
|
|
10
|
-
register(New, "new", "new NAME", "Generates new lono project.")
|
|
11
15
|
|
|
12
|
-
desc "
|
|
13
|
-
long_desc Help.text(:
|
|
14
|
-
def
|
|
15
|
-
|
|
16
|
+
desc "bundle", "Bundle with Lonofile."
|
|
17
|
+
long_desc Help.text(:bundle)
|
|
18
|
+
def bundle(*args)
|
|
19
|
+
Bundle.new(options.merge(args: args)).run
|
|
16
20
|
end
|
|
17
21
|
|
|
18
|
-
desc "
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def configsets(blueprint=nil)
|
|
23
|
-
Configset::List.new(options.merge(blueprint: blueprint)).run
|
|
22
|
+
desc "clean", "Removes `output` folder."
|
|
23
|
+
opts.yes
|
|
24
|
+
def clean
|
|
25
|
+
Clean.new(options).run
|
|
24
26
|
end
|
|
25
27
|
|
|
26
|
-
desc "
|
|
27
|
-
long_desc Help.text(:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Extension::List.new(options.merge(blueprint: blueprint)).run
|
|
28
|
+
desc "down BLUEPRINT", "Delete stack"
|
|
29
|
+
long_desc Help.text(:down)
|
|
30
|
+
cfn_opts.delete
|
|
31
|
+
def down(blueprint)
|
|
32
|
+
Lono::Cfn::Delete.new(options.merge(blueprint: blueprint)).run
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
desc "
|
|
35
|
-
long_desc Help.text(:
|
|
36
|
-
option :
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
opts.stack
|
|
40
|
-
opts.template
|
|
41
|
-
def generate(blueprint)
|
|
42
|
-
o = options.merge(
|
|
43
|
-
blueprint: blueprint,
|
|
44
|
-
generate_only: true,
|
|
45
|
-
)
|
|
46
|
-
Lono::Generate.new(o).all
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
desc "user_data NAME", "Generates user_data script for debugging."
|
|
50
|
-
long_desc Help.text(:user_data)
|
|
51
|
-
opts.clean
|
|
52
|
-
def user_data(blueprint, name)
|
|
53
|
-
Script::Build.new(blueprint, options).run
|
|
54
|
-
UserData.new(blueprint, options.merge(name: name)).generate
|
|
35
|
+
desc "list", "List blueprints"
|
|
36
|
+
long_desc Help.text(:list)
|
|
37
|
+
option :type, aliases: :t, desc: "Type: IE: blueprint, configset, extension. Defaults to all"
|
|
38
|
+
def list
|
|
39
|
+
List.new(options).run
|
|
55
40
|
end
|
|
56
41
|
|
|
57
|
-
desc "
|
|
58
|
-
long_desc Help.text(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Lono::Inspector::Summary.new(options.merge(blueprint: blueprint)).run
|
|
42
|
+
desc "output BLUEPRINT", "output or preview of the deploy"
|
|
43
|
+
long_desc Help.text(:output)
|
|
44
|
+
option :format, desc: "Output formats: #{CliFormat.formats.join(', ')}"
|
|
45
|
+
def output(blueprint)
|
|
46
|
+
Lono::Cfn::Output.new(options.merge(blueprint: blueprint)).run
|
|
63
47
|
end
|
|
64
48
|
|
|
65
|
-
desc "
|
|
66
|
-
long_desc Help.text(
|
|
67
|
-
option :
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
opts.template
|
|
71
|
-
def xgraph(blueprint)
|
|
72
|
-
Lono::Inspector::Graph.new(options.merge(blueprint: blueprint)).run
|
|
49
|
+
desc "plan BLUEPRINT", "Preview deploy"
|
|
50
|
+
long_desc Help.text(:plan)
|
|
51
|
+
option :out, aliases: :o, desc: "Write Change Set info to path"
|
|
52
|
+
def plan(blueprint)
|
|
53
|
+
Lono::Cfn::Plan.new(options.merge(blueprint: blueprint)).run
|
|
73
54
|
end
|
|
74
55
|
|
|
75
|
-
desc "seed BLUEPRINT", "
|
|
56
|
+
desc "seed BLUEPRINT", "Builds starter configs for a blueprint."
|
|
76
57
|
long_desc Help.text("seed")
|
|
77
58
|
option :param, desc: "override convention and specify the param file to use"
|
|
78
|
-
opts.
|
|
79
|
-
|
|
80
|
-
add_runtime_options! # Thor::Action options like --force
|
|
59
|
+
opts.runtime_options
|
|
60
|
+
option :where, desc: "Where to create file, you specify the top-level folder. Possible values: app, config, vendor. Defaults to config"
|
|
81
61
|
def seed(blueprint)
|
|
82
62
|
Seed.new(options.merge(blueprint: blueprint)).create
|
|
83
63
|
end
|
|
84
64
|
|
|
85
|
-
desc "
|
|
86
|
-
long_desc Help.text(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
Lono::AppFile::Build.new(blueprint, options).run
|
|
65
|
+
desc "show BLUEPRINT", "Deploy CloudFormation stack"
|
|
66
|
+
long_desc Help.text(:show)
|
|
67
|
+
def show(blueprint)
|
|
68
|
+
Lono::Cfn::Show.new(options.merge(blueprint: blueprint)).run
|
|
90
69
|
end
|
|
91
70
|
|
|
92
|
-
desc "
|
|
93
|
-
|
|
94
|
-
|
|
71
|
+
desc "status BLUEPRINT", "Shows current status of blueprint."
|
|
72
|
+
long_desc Help.text(:status)
|
|
73
|
+
def status(blueprint)
|
|
74
|
+
Status.new(options.merge(blueprint: blueprint)).run
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
desc "summary BLUEPRINT", "Prints summary of CloudFormation template"
|
|
78
|
+
long_desc Help.text("summary")
|
|
79
|
+
def summary(blueprint)
|
|
80
|
+
Lono::Inspector::Summary.new(options.merge(blueprint: blueprint)).run
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
desc "test", "Run test."
|
|
84
|
+
long_desc Help.text(:test)
|
|
85
|
+
def test
|
|
86
|
+
Test.new(options).run
|
|
95
87
|
end
|
|
96
88
|
|
|
97
|
-
desc "
|
|
98
|
-
long_desc Help.text(
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
desc "up BLUEPRINT", "Deploy stack"
|
|
90
|
+
long_desc Help.text(:up)
|
|
91
|
+
cfn_opts.deploy
|
|
92
|
+
def up(blueprint)
|
|
93
|
+
Lono::Cfn::Deploy.new(options.merge(blueprint: blueprint)).run
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
desc "user_data BLUEPRINT NAME", "Generates user_data script for debugging."
|
|
97
|
+
long_desc Help.text(:user_data)
|
|
98
|
+
opts.clean
|
|
99
|
+
def user_data(blueprint, name)
|
|
100
|
+
Script::Build.new(options.merge(blueprint: blueprint)).run
|
|
101
|
+
UserData.new(options.merge(blueprint: blueprint, name: name)).generate
|
|
101
102
|
end
|
|
102
103
|
|
|
103
|
-
desc "completion *PARAMS", "Prints words for auto-completion
|
|
104
|
+
desc "completion *PARAMS", "Prints words for auto-completion"
|
|
104
105
|
long_desc Help.text("completion")
|
|
105
106
|
def completion(*params)
|
|
106
107
|
Completer.new(CLI, *params).run
|
|
107
108
|
end
|
|
108
109
|
|
|
109
|
-
desc "completion_script", "
|
|
110
|
+
desc "completion_script", "Builds a script that can be eval to setup auto-completion"
|
|
110
111
|
long_desc Help.text("completion_script")
|
|
111
112
|
def completion_script
|
|
112
|
-
Completer::Script.
|
|
113
|
+
Completer::Script.build
|
|
113
114
|
end
|
|
114
115
|
|
|
115
116
|
desc "version", "Prints version"
|
|
@@ -117,10 +118,6 @@ module Lono
|
|
|
117
118
|
puts "Lono: #{VERSION}"
|
|
118
119
|
end
|
|
119
120
|
|
|
120
|
-
desc "blueprint SUBCOMMAND", "blueprint subcommands"
|
|
121
|
-
long_desc Help.text(:blueprint)
|
|
122
|
-
subcommand "blueprint", Blueprint
|
|
123
|
-
|
|
124
121
|
desc "cfn SUBCOMMAND", "cfn subcommands"
|
|
125
122
|
long_desc Help.text(:cfn)
|
|
126
123
|
subcommand "cfn", Cfn
|
|
@@ -129,25 +126,9 @@ module Lono
|
|
|
129
126
|
long_desc Help.text(:code)
|
|
130
127
|
subcommand "code", Code
|
|
131
128
|
|
|
132
|
-
desc "
|
|
133
|
-
long_desc Help.text(:
|
|
134
|
-
subcommand "
|
|
135
|
-
|
|
136
|
-
desc "extension SUBCOMMAND", "extension subcommands"
|
|
137
|
-
long_desc Help.text(:extension)
|
|
138
|
-
subcommand "extension", Extension
|
|
139
|
-
|
|
140
|
-
desc "param SUBCOMMAND", "param subcommands"
|
|
141
|
-
long_desc Help.text(:param)
|
|
142
|
-
subcommand "param", Param
|
|
143
|
-
|
|
144
|
-
desc "pro SUBCOMMAND", "pro subcommands"
|
|
145
|
-
long_desc Help.text(:pro)
|
|
146
|
-
subcommand "pro", Pro
|
|
147
|
-
|
|
148
|
-
desc "registration SUBCOMMAND", "registration subcommands"
|
|
149
|
-
long_desc Help.text(:registration)
|
|
150
|
-
subcommand "registration", Registration
|
|
129
|
+
desc "new SUBCOMMAND", "new subcommands"
|
|
130
|
+
long_desc Help.text(:new)
|
|
131
|
+
subcommand "new", New
|
|
151
132
|
|
|
152
133
|
desc "s3 SUBCOMMAND", "s3 subcommands"
|
|
153
134
|
long_desc Help.text(:s3)
|
|
@@ -156,17 +137,5 @@ module Lono
|
|
|
156
137
|
desc "script SUBCOMMAND", "script subcommands"
|
|
157
138
|
long_desc Help.text(:script)
|
|
158
139
|
subcommand "script", Script
|
|
159
|
-
|
|
160
|
-
desc "sets SUBCOMMAND", "sets subcommands"
|
|
161
|
-
long_desc Help.text(:sets)
|
|
162
|
-
subcommand "sets", Sets
|
|
163
|
-
|
|
164
|
-
desc "set_instances SUBCOMMAND", "set_instances subcommands"
|
|
165
|
-
long_desc Help.text(:set_instances)
|
|
166
|
-
subcommand "set_instances", SetInstances
|
|
167
|
-
|
|
168
|
-
desc "template SUBCOMMAND", "template subcommands"
|
|
169
|
-
long_desc Help.text(:template)
|
|
170
|
-
subcommand "template", Template
|
|
171
140
|
end
|
|
172
141
|
end
|
data/lib/lono/command.rb
CHANGED
|
@@ -31,7 +31,14 @@ end
|
|
|
31
31
|
module Lono
|
|
32
32
|
class Command < Thor
|
|
33
33
|
class << self
|
|
34
|
+
include Lono::Utils::Logging
|
|
35
|
+
|
|
34
36
|
def dispatch(m, args, options, config)
|
|
37
|
+
# Lono.argv provides consistency when lono is being called by rspec-lono test harness
|
|
38
|
+
Lono.argv = args.clone # important to clone since Thor removes the first argv
|
|
39
|
+
|
|
40
|
+
check_project!(args.first)
|
|
41
|
+
|
|
35
42
|
# Allow calling for help via:
|
|
36
43
|
# lono command help
|
|
37
44
|
# lono command -h
|
|
@@ -41,7 +48,6 @@ module Lono
|
|
|
41
48
|
# as well thor's normal way:
|
|
42
49
|
#
|
|
43
50
|
# lono help command
|
|
44
|
-
help_flags = Thor::HELP_MAPPINGS + ["help"]
|
|
45
51
|
if args.length > 1 && !(args & help_flags).empty?
|
|
46
52
|
args -= help_flags
|
|
47
53
|
args.insert(-2, "help")
|
|
@@ -58,6 +64,26 @@ module Lono
|
|
|
58
64
|
super
|
|
59
65
|
end
|
|
60
66
|
|
|
67
|
+
def check_project!(command_name)
|
|
68
|
+
return if subcommand?
|
|
69
|
+
return if command_name.nil?
|
|
70
|
+
return if help_flags.include?(Lono.argv.last) # IE: -h help
|
|
71
|
+
return if %w[-h -v --version completion completion_script help new test version].include?(command_name)
|
|
72
|
+
return if File.exist?("#{Lono.root}/config/app.rb")
|
|
73
|
+
return unless Lono.check_project
|
|
74
|
+
logger.error "ERROR: It doesnt look like this is a lono project. Are you sure you are in a lono project?".color(:red)
|
|
75
|
+
ENV['LONO_TEST'] ? raise : exit(1)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def help_flags
|
|
79
|
+
Thor::HELP_MAPPINGS + ["help"]
|
|
80
|
+
end
|
|
81
|
+
private :help_flags
|
|
82
|
+
|
|
83
|
+
def subcommand?
|
|
84
|
+
!!caller.detect { |l| l.include?('in subcommand') }
|
|
85
|
+
end
|
|
86
|
+
|
|
61
87
|
# Override command_help to include the description at the top of the
|
|
62
88
|
# long_description.
|
|
63
89
|
def command_help(shell, command_name)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Lono
|
|
2
|
+
class Component
|
|
3
|
+
attr_reader :name
|
|
4
|
+
def initialize(options={})
|
|
5
|
+
@options = options
|
|
6
|
+
@name = options[:name]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def type
|
|
10
|
+
self.class.name.to_s.split('::').last.underscore # IE: blueprint
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def exist?
|
|
14
|
+
!root.nil?
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def type_dir
|
|
18
|
+
type.pluralize # IE: blueprints
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def root
|
|
22
|
+
paths = Dir.glob("#{Lono.root}/{app,vendor}/#{type_dir}/*")
|
|
23
|
+
paths.find do |path|
|
|
24
|
+
found = path.sub(%r{.*/(app|vendor)/}, '')
|
|
25
|
+
found == "#{type_dir}/#{@name}" # exact match
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Dont name AwsData. Think prefer AwsInfo vs AwsConcern
|
|
2
|
+
module Lono::Concerns
|
|
3
|
+
module AwsInfo
|
|
4
|
+
extend Memoist
|
|
5
|
+
delegate :region, to: :aws_data
|
|
6
|
+
alias_method :aws_region, :region
|
|
7
|
+
alias_method :current_region, :region
|
|
8
|
+
|
|
9
|
+
def aws_data
|
|
10
|
+
AwsData.new
|
|
11
|
+
end
|
|
12
|
+
memoize :aws_data
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/lono/configset.rb
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
module Lono
|
|
2
|
-
class Configset <
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
class Configset < Component
|
|
3
|
+
attr_reader :resource
|
|
4
|
+
attr_accessor :metadata
|
|
5
|
+
def initialize(options={})
|
|
6
|
+
super
|
|
7
|
+
@resource = options[:resource]
|
|
6
8
|
end
|
|
7
|
-
register(New, "new", "new NAME", "Generates new lono configset.")
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
def path
|
|
11
|
+
return unless root
|
|
12
|
+
exts = %w[rb yml json] # rb highest precedence
|
|
13
|
+
paths = exts.map { |ext| "#{root}/configset.#{ext}" }
|
|
14
|
+
paths.find { |p| File.exist?(p) }
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
end
|
data/lib/lono/core.rb
CHANGED
|
@@ -4,79 +4,50 @@ module Lono
|
|
|
4
4
|
module Core
|
|
5
5
|
extend Memoist
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
end
|
|
10
|
-
memoize :config
|
|
7
|
+
cattr_accessor :argv
|
|
8
|
+
cattr_accessor :check_project, default: true
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
# allow testing frameworks to switch root
|
|
11
|
+
cattr_writer :root
|
|
13
12
|
def root
|
|
14
13
|
path = @@root || ENV['LONO_ROOT'] || Dir.pwd
|
|
15
14
|
Pathname.new(path)
|
|
16
15
|
end
|
|
17
|
-
memoize :root
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
def app
|
|
18
|
+
ENV['LONO_APP']
|
|
19
|
+
end
|
|
20
|
+
memoize :app
|
|
22
21
|
|
|
23
22
|
def env
|
|
24
|
-
|
|
25
|
-
env = env_from_profile(ENV['AWS_PROFILE']) || 'development'
|
|
26
|
-
env = ENV['LONO_ENV'] if ENV['LONO_ENV'] # highest precedence
|
|
27
|
-
env
|
|
23
|
+
ENV['LONO_ENV'] || 'dev'
|
|
28
24
|
end
|
|
29
25
|
memoize :env
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def set_aws_profile!
|
|
34
|
-
return unless settings # Only load if within lono project and there's a settings.yml
|
|
35
|
-
data = settings[Lono.env] || {}
|
|
36
|
-
if data["aws_profile"]
|
|
37
|
-
# puts "Using AWS_PROFILE=#{data["aws_profile"]} from LONO_ENV=#{Lono.env} in configs/settings.yml"
|
|
38
|
-
ENV['AWS_PROFILE'] = data["aws_profile"]
|
|
39
|
-
end
|
|
27
|
+
def tmp_root
|
|
28
|
+
ENV['LONO_TMP_ROOT'] || "/tmp/lono"
|
|
40
29
|
end
|
|
30
|
+
memoize :tmp_root
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def settings
|
|
45
|
-
setting = Setting.new(false) # check_lono_project to account for `lono new`
|
|
46
|
-
settings_path = setting.lookup_project_settings_path
|
|
47
|
-
return unless settings_path # in case outside of lono project
|
|
48
|
-
|
|
49
|
-
YAML.load_file(settings_path)
|
|
32
|
+
def log_root
|
|
33
|
+
"#{root}/log"
|
|
50
34
|
end
|
|
51
|
-
memoize :settings
|
|
52
35
|
|
|
53
|
-
def
|
|
54
|
-
|
|
55
|
-
puts "ERROR: A lono-pro gem installation has been detected.".color(:red)
|
|
56
|
-
puts <<~EOL
|
|
57
|
-
The lono-pro gem is now a part of lono itself. The lono-pro gem has been deprecated.
|
|
58
|
-
Please uninstall the lono-pro gem and remove it from your Gemfile to continue.
|
|
59
|
-
EOL
|
|
60
|
-
exit 1
|
|
61
|
-
end
|
|
36
|
+
def configure(&block)
|
|
37
|
+
App.instance.configure(&block)
|
|
62
38
|
end
|
|
63
39
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
false
|
|
40
|
+
# Generally, use the Lono.config instead of App.instance.config since it guarantees the load_project_config call
|
|
41
|
+
def config
|
|
42
|
+
App.instance.load_project_config
|
|
43
|
+
App.instance.config
|
|
69
44
|
end
|
|
45
|
+
memoize :config
|
|
70
46
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
settings ||= {}
|
|
76
|
-
profiles = settings['aws_profile']
|
|
77
|
-
profiles && profiles == aws_profile
|
|
78
|
-
end
|
|
79
|
-
env.first if env
|
|
47
|
+
# allow different logger when running up all or rspec-lono
|
|
48
|
+
cattr_writer :logger
|
|
49
|
+
def logger
|
|
50
|
+
@@logger ||= config.logger
|
|
80
51
|
end
|
|
81
52
|
end
|
|
82
53
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class Module
|
|
2
|
+
# Include all modules within the relative folder. IE: for dsl/syntax/mod/*
|
|
3
|
+
#
|
|
4
|
+
# include Common
|
|
5
|
+
# include Provider
|
|
6
|
+
# # etc
|
|
7
|
+
#
|
|
8
|
+
# Caller lines are different for OSes:
|
|
9
|
+
#
|
|
10
|
+
# windows: "C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/lono-1.1.1/lib/lono/builder.rb:34:in `build'"
|
|
11
|
+
# linux: "/home/ec2-user/.rvm/gems/ruby-3.0.3/gems/lono-1.1.1/lib/lono/compiler/dsl/syntax/mod.rb:4:in `<module:Mod>'"
|
|
12
|
+
#
|
|
13
|
+
def include_modules(dir)
|
|
14
|
+
caller_line = caller[0]
|
|
15
|
+
parts = caller_line.split(':')
|
|
16
|
+
calling_file = caller_line.match(/^[a-zA-Z]:/) ? parts[1] : parts[0]
|
|
17
|
+
parent_dir = File.dirname(calling_file)
|
|
18
|
+
|
|
19
|
+
full_dir = "#{parent_dir}/#{dir}"
|
|
20
|
+
paths = Dir.glob("#{full_dir}/**/*.rb")
|
|
21
|
+
if paths.empty?
|
|
22
|
+
raise "Empty include_modules full_dir: #{full_dir}"
|
|
23
|
+
end
|
|
24
|
+
paths.each do |path|
|
|
25
|
+
regexp = Regexp.new(".*/lib/")
|
|
26
|
+
mod = path.sub(regexp, '').sub('.rb','').camelize
|
|
27
|
+
c = mod.constantize
|
|
28
|
+
include c if c.class == Module
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class Object
|
|
2
|
+
# Load custom helper methods from project
|
|
3
|
+
def load_helper_files(dir, type: :blueprint)
|
|
4
|
+
paths = Dir.glob("#{dir}/**/*.rb")
|
|
5
|
+
paths.sort_by! { |p| p.size } # so namespaces are loaded first
|
|
6
|
+
paths.each do |path|
|
|
7
|
+
next unless File.file?(path)
|
|
8
|
+
|
|
9
|
+
filename = if type == :project
|
|
10
|
+
path.sub(%r{.*/helpers/[a-zA-Z\-_]+/},'').sub('.rb','')
|
|
11
|
+
else # blueprint, configset
|
|
12
|
+
path.sub(%r{.*/helpers/},'').sub('.rb','')
|
|
13
|
+
end
|
|
14
|
+
module_name = filename.camelize
|
|
15
|
+
|
|
16
|
+
# Prepend a period so require works when LONO_ROOT is set to a relative path without a period.
|
|
17
|
+
# Example: LONO_ROOT=tmp/lono_project
|
|
18
|
+
first_char = path[0..0]
|
|
19
|
+
path = "./#{path}" unless %w[. /].include?(first_char)
|
|
20
|
+
|
|
21
|
+
# Examples:
|
|
22
|
+
# project:
|
|
23
|
+
# path: app/helpers/custom/custom_helper.rb
|
|
24
|
+
# module_name: CustomHelper
|
|
25
|
+
# blueprint:
|
|
26
|
+
# path: app/blueprints/demo/helpers/outputs.rb
|
|
27
|
+
# module_name: Outputs
|
|
28
|
+
require path
|
|
29
|
+
self.class.send :include, module_name.constantize
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
data/lib/lono/ext.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class Lono::Files
|
|
2
|
+
class Base < Lono::CLI::Base
|
|
3
|
+
delegate :full_path, :output_path, :zip_name, :zip_path, to: :files
|
|
4
|
+
attr_reader :files
|
|
5
|
+
def initialize(options={})
|
|
6
|
+
super
|
|
7
|
+
# @files is reference to Lono::Files self instance
|
|
8
|
+
# IE: Lono::Files instance is the caller
|
|
9
|
+
@files = options[:files]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
class Lono::Files
|
|
2
|
+
class Builder < Base
|
|
3
|
+
extend Memoist
|
|
4
|
+
include Lono::Builder::Context
|
|
5
|
+
include Lono::Builder::Dsl::Syntax
|
|
6
|
+
# Tricky must define files again to avoid conflict with files from loading the Dsl::Syntax
|
|
7
|
+
attr_reader :files
|
|
8
|
+
|
|
9
|
+
def run
|
|
10
|
+
load_context
|
|
11
|
+
if File.directory?(full_path)
|
|
12
|
+
directory(@files)
|
|
13
|
+
else
|
|
14
|
+
template(@files)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def template(files)
|
|
19
|
+
sequence.send(:set_template_paths, @blueprint.root)
|
|
20
|
+
src = files.path
|
|
21
|
+
dest = files.output_path
|
|
22
|
+
sequence.template(src, dest)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def directory(files)
|
|
26
|
+
src = files.full_path
|
|
27
|
+
sequence.send(:set_template_paths, src)
|
|
28
|
+
sequence.destination_root = @files.output_path
|
|
29
|
+
sequence.directory(".", verbose: false, force: true, context: binding) # Thor::Action
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def sequence
|
|
33
|
+
Lono::CLI::New::Sequence.new(@options)
|
|
34
|
+
end
|
|
35
|
+
memoize :sequence
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
|
|
3
|
+
class Lono::Files
|
|
4
|
+
class Compressor < Base
|
|
5
|
+
def run
|
|
6
|
+
if File.directory?(output_path)
|
|
7
|
+
zip_directory
|
|
8
|
+
else
|
|
9
|
+
zip_file
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def zip_file
|
|
14
|
+
logger.debug "Zipping file to #{pretty_path(zip_path)}"
|
|
15
|
+
# create zipfile at same level of file
|
|
16
|
+
command = "cd #{File.dirname(output_path)} && zip -q #{zip_name} #{File.basename(output_path)}"
|
|
17
|
+
execute_zip(command)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def zip_directory
|
|
21
|
+
logger.debug "Zipping folder to #{zip_path}"
|
|
22
|
+
command = "cd #{output_path} && zip --symlinks -rq #{zip_name} ." # create zipfile witih directory
|
|
23
|
+
execute_zip(command)
|
|
24
|
+
FileUtils.mv("#{output_path}/#{zip_name}", "#{File.dirname(output_path)}/#{zip_name}") # move zip back to the parent directory
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
def execute_zip(command)
|
|
29
|
+
check_zip_installed!
|
|
30
|
+
logger.debug "=> #{command}".color(:green)
|
|
31
|
+
`#{command}`
|
|
32
|
+
return if $?.success?
|
|
33
|
+
logger.info "ERROR: Fail trying to zip files".color(:red)
|
|
34
|
+
logger.info "Command: #{command}".color(:red)
|
|
35
|
+
exit 1
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
@@zip_installed = false
|
|
39
|
+
def check_zip_installed!
|
|
40
|
+
@@zip_installed = system("type zip > /dev/null 2>&1")
|
|
41
|
+
if @@zip_installed
|
|
42
|
+
@@zip_installed = true
|
|
43
|
+
return
|
|
44
|
+
end
|
|
45
|
+
logger.error "ERROR: The command 'zip' is not installed.".color(:red)
|
|
46
|
+
logger.error <<~EOL
|
|
47
|
+
The file helper requires the zip command.
|
|
48
|
+
Please install the zip command on this system.
|
|
49
|
+
EOL
|
|
50
|
+
exit 1
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|