avm-tools 0.102.1 → 0.104.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avm/data/package/dump.rb +1 -1
- data/lib/avm/instances/base/dockerizable.rb +2 -1
- data/lib/avm/launcher/instances/runner_helper.rb +1 -1
- data/lib/avm/projects/stereotypes/ruby_gem/local_project_mixin.rb +2 -2
- data/lib/avm/self/instance.rb +4 -0
- data/lib/avm/{core_ext.rb → tools/core_ext.rb} +0 -0
- data/lib/avm/tools/runner/app_src/eac_asciidoctor_base0/build.rb +1 -1
- data/lib/avm/tools/runner/app_src/info.rb +1 -1
- data/lib/avm/tools/runner/app_src/test.rb +1 -1
- data/lib/avm/tools/runner/app_src/update.rb +1 -1
- data/lib/avm/tools/runner/app_src/version_bump.rb +2 -2
- data/lib/avm/tools/runner/config.rb +1 -1
- data/lib/avm/tools/runner/config/load_path.rb +1 -1
- data/lib/avm/tools/runner/git.rb +1 -1
- data/lib/avm/tools/runner/git/auto_commit.rb +1 -0
- data/lib/avm/tools/runner/git/dirty_files.rb +1 -1
- data/lib/avm/tools/runner/git/issue.rb +5 -76
- data/lib/avm/tools/runner/git/issue/complete.rb +79 -0
- data/lib/avm/tools/runner/git/issue/deliver.rb +35 -0
- data/lib/avm/tools/runner/git/revisions_test.rb +1 -1
- data/lib/avm/tools/runner/git/subrepo.rb +1 -1
- data/lib/avm/tools/runner/git/subrepo/check.rb +1 -1
- data/lib/avm/tools/runner/git/subrepo/clone.rb +1 -1
- data/lib/avm/tools/runner/git/subrepo/fix.rb +1 -1
- data/lib/avm/tools/runner/launcher.rb +1 -1
- data/lib/avm/tools/runner/ruby/rubocop.rb +1 -1
- data/lib/avm/tools/runner/self.rb +1 -1
- data/lib/avm/tools/version.rb +1 -1
- data/vendor/avm-apps/lib/avm/apps/config.rb +6 -2
- data/vendor/avm-apps/lib/avm/apps/version.rb +1 -1
- data/vendor/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +1 -0
- data/{lib → vendor/avm-eac_asciidoctor_base0/lib}/avm/eac_asciidoctor_base0/apache_host.rb +0 -0
- data/{lib → vendor/avm-eac_asciidoctor_base0/lib}/avm/eac_asciidoctor_base0/apache_path.rb +0 -0
- data/{lib → vendor/avm-eac_asciidoctor_base0/lib}/avm/eac_asciidoctor_base0/deploy.rb +0 -0
- data/{lib → vendor/avm-eac_asciidoctor_base0/lib}/avm/eac_asciidoctor_base0/instance.rb +0 -0
- data/vendor/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +1 -1
- data/vendor/avm-eac_rails_base1/Gemfile +5 -0
- data/vendor/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +19 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/apache_host.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/instance.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner/bundle.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner/code_runner.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner/log.rb +0 -0
- data/vendor/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/logs.rb +18 -0
- data/vendor/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/logs/clear.rb +26 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner/rails_server.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner_with/bundle.rb +0 -0
- data/{lib → vendor/avm-eac_rails_base1/lib}/avm/eac_rails_base1/runner_with/rails_environment.rb +0 -0
- data/vendor/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +7 -0
- data/vendor/avm-eac_rails_base1/spec/rubocop_spec.rb +3 -0
- data/vendor/avm-eac_rails_base1/spec/spec_helper.rb +102 -0
- data/vendor/avm-eac_redmine_base0/Gemfile +5 -0
- data/vendor/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +19 -0
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0.rb +2 -2
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0/apache_host.rb +0 -0
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0/core_update.rb +0 -0
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0/data_unit.rb +0 -0
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0/deploy.rb +0 -0
- data/{lib → vendor/avm-eac_redmine_base0/lib}/avm/eac_redmine_base0/instance.rb +2 -2
- data/vendor/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +55 -0
- data/vendor/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/patches/object/template.rb +7 -0
- data/vendor/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +7 -0
- data/vendor/avm-eac_redmine_base0/spec/rubocop_spec.rb +3 -0
- data/vendor/avm-eac_redmine_base0/spec/spec_helper.rb +102 -0
- data/{template → vendor/avm-eac_redmine_base0/template}/avm/eac_redmine_base0/deploy/config/install.sh.template +0 -0
- data/{template → vendor/avm-eac_redmine_base0/template}/avm/eac_redmine_base0/deploy/config/secrets.yml +0 -0
- data/{template/avm/eac_redmine_base0 → vendor/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances}/docker_image/Dockerfile.template +1 -1
- data/{template/avm/eac_redmine_base0 → vendor/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances}/docker_image/apache_http_virtualhost.conf.template +0 -0
- data/{template/avm/eac_redmine_base0 → vendor/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances}/docker_image/apache_https_virtualhost.conf.template +0 -0
- data/vendor/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/install_settings.sh.template +24 -0
- data/{template/avm/eac_redmine_base0 → vendor/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances}/docker_image/start.sh.template +0 -0
- data/vendor/avm-eac_webapp_base0/Gemfile +5 -0
- data/vendor/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +19 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0.rb +2 -2
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/apache_host.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/apache_path.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/appended_directories.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/build.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/file_unit.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/git_info.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/version.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/deploy/write_on_target.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/instance.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/instance/subcommand_parent.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/apache_host.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/apache_path.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/data.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/data/dump.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/data/load.rb +0 -0
- data/{lib → vendor/avm-eac_webapp_base0/lib}/avm/eac_webapp_base0/runner/deploy.rb +0 -0
- data/vendor/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
- data/vendor/avm-eac_webapp_base0/spec/rubocop_spec.rb +3 -0
- data/vendor/avm-eac_webapp_base0/spec/spec_helper.rb +102 -0
- data/vendor/avm/Gemfile +5 -0
- data/vendor/avm/avm.gemspec +22 -0
- data/vendor/avm/lib/avm.rb +7 -0
- data/vendor/avm/lib/avm/docker.rb +9 -0
- data/{lib → vendor/avm/lib}/avm/docker/container.rb +5 -5
- data/{lib → vendor/avm/lib}/avm/docker/image.rb +3 -4
- data/{lib → vendor/avm/lib}/avm/docker/runner.rb +7 -11
- data/{lib → vendor/avm/lib}/avm/executables.rb +1 -1
- data/{lib → vendor/avm/lib}/avm/files.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable/file_content.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable/plain_directory.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable/resource_base.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable/tar_output_command.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/appendable/templatized_directory.rb +1 -0
- data/{lib → vendor/avm/lib}/avm/files/appender.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/deploy.rb +0 -1
- data/{lib → vendor/avm/lib}/avm/files/formatter.rb +1 -1
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/base.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/generic_plain.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/html.rb +0 -0
- data/vendor/avm/lib/avm/files/formatter/formats/javascript.rb +23 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/json.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/php.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/python.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/ruby.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/formats/xml.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/formatter/utf8_assert.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/info.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/files/rotate.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/commit_info.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/base.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/last.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/manual.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/new.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/nth.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit/rules/unique.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/auto_commit_path.rb +1 -1
- data/{lib → vendor/avm/lib}/avm/git/auto_commit_path/ruby.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/commit.rb +3 -2
- data/{lib → vendor/avm/lib}/avm/git/commit/class_methods.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/commit/deploy.rb +0 -1
- data/{lib → vendor/avm/lib}/avm/git/commit/deploy_methods.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/commit/diff_tree_line.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/commit/file.rb +2 -2
- data/{lib → vendor/avm/lib}/avm/git/file_auto_fixup.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/issue.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/issue/complete.rb +3 -7
- data/vendor/avm/lib/avm/git/issue/complete/commits.rb +42 -0
- data/vendor/avm/lib/avm/git/issue/complete/git_subrepos.rb +23 -0
- data/vendor/avm/lib/avm/git/issue/complete/local_branch.rb +54 -0
- data/vendor/avm/lib/avm/git/issue/complete/local_tag.rb +39 -0
- data/vendor/avm/lib/avm/git/issue/complete/push.rb +54 -0
- data/vendor/avm/lib/avm/git/issue/complete/remote.rb +33 -0
- data/vendor/avm/lib/avm/git/issue/complete/test.rb +45 -0
- data/vendor/avm/lib/avm/git/issue/complete/tracker.rb +28 -0
- data/{lib → vendor/avm/lib}/avm/git/issue/complete/validation.rb +0 -0
- data/vendor/avm/lib/avm/git/issue/complete/validations.rb +53 -0
- data/vendor/avm/lib/avm/git/issue/complete/working_tree.rb +19 -0
- data/{lib → vendor/avm/lib}/avm/git/issue/deliver.rb +1 -1
- data/{lib → vendor/avm/lib}/avm/git/organize.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/organize/reference_update.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/organize/repository.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/revision_test.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/subrepo_check.rb +0 -1
- data/{lib → vendor/avm/lib}/avm/git/subrepo_check/parent.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/subrepo_check/remote.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/git/subrepo_check/show_result.rb +0 -1
- data/{lib → vendor/avm/lib}/avm/git/subrepo_checks.rb +1 -1
- data/{lib → vendor/avm/lib}/avm/instances/docker_image.rb +0 -0
- data/{lib → vendor/avm/lib}/avm/result.rb +0 -0
- data/vendor/avm/lib/avm/version.rb +5 -0
- data/{lib/avm/version.rb → vendor/avm/lib/avm/version_number.rb} +1 -1
- data/vendor/avm/spec/lib/avm/git/auto_commit_path_spec.rb +20 -0
- data/vendor/avm/spec/lib/avm/git/commit/deploy_spec.rb +93 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec.rb +14 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
- data/vendor/avm/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
- data/vendor/avm/spec/lib/avm/git/commit_spec.rb +56 -0
- data/vendor/avm/spec/rubocop_spec.rb +3 -0
- data/vendor/avm/spec/spec_helper.rb +19 -0
- data/vendor/eac_cli/eac_cli.gemspec +0 -1
- data/vendor/eac_cli/lib/eac_cli/config.rb +1 -2
- data/vendor/eac_cli/lib/eac_cli/config/entry.rb +1 -3
- data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +3 -2
- data/vendor/eac_cli/lib/eac_cli/old_configs_bridge.rb +2 -0
- data/vendor/eac_cli/lib/eac_cli/runner.rb +0 -2
- data/vendor/eac_cli/lib/eac_cli/runner/instance_methods.rb +5 -1
- data/vendor/eac_cli/lib/eac_cli/runner_with/help.rb +3 -2
- data/vendor/eac_cli/lib/eac_cli/runner_with/help/builder.rb +73 -0
- data/vendor/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +56 -0
- data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +1 -3
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +1 -1
- data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +0 -1
- data/vendor/eac_config/lib/eac_config/node.rb +7 -0
- data/vendor/eac_config/lib/eac_config/version.rb +1 -1
- data/vendor/eac_docker/eac_docker.gemspec +1 -1
- data/vendor/eac_docker/lib/eac_docker/debug.rb +15 -0
- data/vendor/eac_docker/lib/eac_docker/images/coded.rb +4 -0
- data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +12 -2
- data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application.rb +17 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +2 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +7 -4
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +11 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +33 -0
- data/vendor/eac_templates/eac_templates.gemspec +1 -1
- data/vendor/eac_templates/lib/eac_templates/variable_providers.rb +1 -1
- data/vendor/eac_templates/lib/eac_templates/variable_providers/config_reader.rb +27 -0
- data/vendor/eac_templates/lib/eac_templates/version.rb +1 -1
- metadata +183 -135
- data/lib/avm/docker.rb +0 -9
- data/lib/avm/docker/registry.rb +0 -19
- data/lib/avm/eac_redmine_base0/docker_image.rb +0 -52
- data/lib/avm/git/issue/complete/_commits.rb +0 -40
- data/lib/avm/git/issue/complete/_git_subrepos.rb +0 -21
- data/lib/avm/git/issue/complete/_local_branch.rb +0 -52
- data/lib/avm/git/issue/complete/_local_tag.rb +0 -37
- data/lib/avm/git/issue/complete/_push.rb +0 -52
- data/lib/avm/git/issue/complete/_remote.rb +0 -31
- data/lib/avm/git/issue/complete/_test.rb +0 -43
- data/lib/avm/git/issue/complete/_tracker.rb +0 -26
- data/lib/avm/git/issue/complete/_validations.rb +0 -51
- data/lib/avm/git/issue/complete/_working_tree.rb +0 -17
- data/template/avm/eac_redmine_base0/docker_image/install_settings.sh.template +0 -29
- data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +0 -71
- data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +0 -52
- data/vendor/eac_cli/lib/eac_cli/docopt/runner_context_replacement.rb +0 -15
- data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +0 -51
- data/vendor/eac_cli/lib/eac_cli/docopt_runner.rb +0 -39
- data/vendor/eac_cli/lib/eac_cli/docopt_runner/_doc.rb +0 -23
- data/vendor/eac_cli/lib/eac_cli/docopt_runner/_settings.rb +0 -17
- data/vendor/eac_cli/lib/eac_cli/docopt_runner/_subcommands.rb +0 -152
- data/vendor/eac_cli/lib/eac_cli/docopt_runner/class_methods.rb +0 -18
- data/vendor/eac_cli/lib/eac_cli/docopt_runner/context.rb +0 -18
- data/vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb +0 -35
- data/vendor/eac_cli/spec/lib/eac_cli/docopt_runner_spec.rb +0 -136
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'docopt'
|
4
|
-
|
5
|
-
module EacCli
|
6
|
-
class DocoptRunner
|
7
|
-
module ClassMethods
|
8
|
-
DOCOPT_ERROR_EXIT_CODE = 0xC0
|
9
|
-
|
10
|
-
def run(options = {})
|
11
|
-
create(options).send(:run)
|
12
|
-
rescue ::Docopt::Exit => e
|
13
|
-
STDERR.write(e.message + "\n")
|
14
|
-
::Kernel.exit(DOCOPT_ERROR_EXIT_CODE)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module EacCli
|
4
|
-
class DocoptRunner
|
5
|
-
# Provides the method context which search and call a method in self and ancestor objects.
|
6
|
-
module Context
|
7
|
-
def context(method)
|
8
|
-
current = self
|
9
|
-
while current
|
10
|
-
return current.send(method) if current.respond_to?(method)
|
11
|
-
|
12
|
-
current = current.respond_to?(:parent) ? current.parent : nil
|
13
|
-
end
|
14
|
-
raise "Context method \"#{method}\" not found for #{self.class}"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_cli/docopt/runner_extension'
|
4
|
-
|
5
|
-
RSpec.describe ::EacCli::Docopt::RunnerExtension do
|
6
|
-
let(:stub_runner) do
|
7
|
-
r = Class.new(::EacCli::DocoptRunner) do
|
8
|
-
def run; end
|
9
|
-
end
|
10
|
-
r.include ::EacCli::Runner
|
11
|
-
r.runner_definition do
|
12
|
-
desc 'A stub runner.'
|
13
|
-
arg_opt '-o', '--opt1', 'A argument option'
|
14
|
-
pos_arg 'pos1'
|
15
|
-
end
|
16
|
-
r
|
17
|
-
end
|
18
|
-
|
19
|
-
let(:instance) { stub_runner.new(argv: %w[-o aaa bbb]) }
|
20
|
-
|
21
|
-
before { instance.run }
|
22
|
-
|
23
|
-
it { expect(instance.options.fetch('--opt1')).to eq('aaa') }
|
24
|
-
it { expect(instance.options.fetch('<pos1>')).to eq('bbb') }
|
25
|
-
it { expect(instance.doc).to eq(<<~EXPECTED) }
|
26
|
-
A stub runner.
|
27
|
-
|
28
|
-
Usage:
|
29
|
-
__PROGRAM__ [options] <pos1>
|
30
|
-
|
31
|
-
Options:
|
32
|
-
-o --opt1=<value> A argument option
|
33
|
-
|
34
|
-
EXPECTED
|
35
|
-
end
|
@@ -1,136 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_cli/docopt_runner'
|
4
|
-
|
5
|
-
RSpec.describe ::EacCli::DocoptRunner do
|
6
|
-
context 'runner without DOC constant' do
|
7
|
-
class RunnerWithoutDocConstant < ::EacCli::DocoptRunner
|
8
|
-
def run
|
9
|
-
# Do nothing
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
let(:options) { { argv: [] } }
|
14
|
-
|
15
|
-
it 'raises exception if doc argument is not supplied' do
|
16
|
-
expect { RunnerWithoutDocConstant.new(options) }.to raise_error(::StandardError)
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'doc argument is supplied' do
|
20
|
-
let(:doc) do
|
21
|
-
<<~DOCUMENT
|
22
|
-
Runner without doc constant.
|
23
|
-
|
24
|
-
Usage:
|
25
|
-
__PROGRAM__
|
26
|
-
DOCUMENT
|
27
|
-
end
|
28
|
-
|
29
|
-
let(:options_with_doc) { options.merge(doc: doc) }
|
30
|
-
|
31
|
-
it 'reads doc from arguments' do
|
32
|
-
expect { RunnerWithoutDocConstant.new(options_with_doc) }.not_to raise_error
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
context 'doc with subcommands' do
|
38
|
-
class RunnerWithSubcommands < ::EacCli::DocoptRunner
|
39
|
-
attr_accessor :subarg_value, :suboption_value
|
40
|
-
|
41
|
-
DOC = <<~DOCUMENT
|
42
|
-
A root runner with subcommands.
|
43
|
-
|
44
|
-
Usage:
|
45
|
-
__PROGRAM__ <parent-arg> __SUBCOMMANDS__
|
46
|
-
DOCUMENT
|
47
|
-
|
48
|
-
def parent_arg
|
49
|
-
options.fetch('<parent-arg>')
|
50
|
-
end
|
51
|
-
|
52
|
-
class MySubCommand < ::EacCli::DocoptRunner
|
53
|
-
DOC = <<~DOCUMENT
|
54
|
-
A root runner with subcommands.
|
55
|
-
|
56
|
-
Usage:
|
57
|
-
__PROGRAM__ [--suboption=<suboption-value] <subarg-value>
|
58
|
-
DOCUMENT
|
59
|
-
|
60
|
-
def run
|
61
|
-
parent.suboption_value = options.fetch('--suboption')
|
62
|
-
parent.subarg_value = options.fetch('<subarg-value>')
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
let(:instance) { RunnerWithSubcommands.new }
|
68
|
-
|
69
|
-
describe '#subcommands?' do
|
70
|
-
it 'returns true' do
|
71
|
-
expect(instance.subcommands?).to eq(true)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'when subcommand is valid' do
|
76
|
-
let(:instance) do
|
77
|
-
RunnerWithSubcommands.new(argv: %w[value0 my-sub-command value1 --suboption value2])
|
78
|
-
end
|
79
|
-
|
80
|
-
describe '#subcommand_arg_as_list?' do
|
81
|
-
it { expect(instance.subcommand_arg_as_list?).to eq(false) }
|
82
|
-
end
|
83
|
-
|
84
|
-
describe '#target_doc' do
|
85
|
-
it { expect(instance.target_doc).to include('Subcommands:') }
|
86
|
-
end
|
87
|
-
|
88
|
-
describe '#subcommand' do
|
89
|
-
it 'is of subcommand class' do
|
90
|
-
expect(instance.subcommand).to be_a(RunnerWithSubcommands::MySubCommand)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
describe '#context' do
|
95
|
-
it 'accesses instance methods by subcommand' do
|
96
|
-
expect(instance.subcommand.context(:parent_arg)).to eq('value0')
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
describe '#run' do
|
101
|
-
it 'calls subcommand' do
|
102
|
-
instance.run
|
103
|
-
expect(instance.subarg_value).to eq('value1')
|
104
|
-
expect(instance.suboption_value).to eq('value2')
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
context 'when subcommand is invalid' do
|
110
|
-
let(:instance) { RunnerWithSubcommands.new(argv: %w[value0 invalid-subcommand]) }
|
111
|
-
|
112
|
-
describe '#run' do
|
113
|
-
it 'raises Docopt::Exit' do
|
114
|
-
expect { instance.run }.to raise_error(::Docopt::Exit)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
context 'when subcommand as arg list is enabled' do
|
120
|
-
let(:argv) { %w[value0 my-sub-command value1 --suboption value2] }
|
121
|
-
let(:instance) { RunnerWithSubcommands.new(argv: argv, subcommand_arg_as_list: true) }
|
122
|
-
|
123
|
-
describe '#subcommand_arg_as_list?' do
|
124
|
-
it { expect(instance.subcommand_arg_as_list?).to eq(true) }
|
125
|
-
end
|
126
|
-
|
127
|
-
describe '#target_doc' do
|
128
|
-
it { expect(instance.target_doc).to include('(my-sub-command)') }
|
129
|
-
end
|
130
|
-
|
131
|
-
describe '#subcommand_name' do
|
132
|
-
it { expect(instance.subcommand_name).to eq('my-sub-command') }
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|