Sha256: 3566d71086ed1d812deaeed280cb3504dc811b3f037e25ae08e03c61990f8480

Contents?: true

Size: 1.67 KB

Versions: 41

Compression:

Stored size: 1.67 KB

Contents

# frozen_string_literal: true

require 'avm/path_string'
require 'eac_ruby_utils/console/docopt_runner'
require 'eac_ruby_utils/console/speaker'

module Avm
  module Stereotypes
    module EacWebappBase0
      module Runner
        class Deploy < ::EacRubyUtils::Console::DocoptRunner
          include ::EacRubyUtils::Console::Speaker

          DOC = <<~DOCOPT
            Deploy for %%STEREOTYPE_NAME%% instance.

            Usage:
              __PROGRAM__ [options]
              __PROGRAM__ -h | --help

            Options:
              -h --help                       Show this screen.
              -r --reference=<git-reference>  Git reference to deploy.
              -a --append-dirs=<append-dirs>  Append directories to deploy (List separated by ":").
          DOCOPT
          def initialize(settings = {})
            super settings.merge(doc: DOC.gsub('%%STEREOTYPE_NAME%%', stereotype_name))
          end

          def deploy_class
            stereotype_module.const_get('Deploy')
          end

          def stereotype_module
            "Avm::Stereotypes::#{stereotype_name}".constantize
          end

          def stereotype_name
            self.class.name.deconstantize.demodulize
          end

          def run
            result = deploy_class.new(context(:instance), deploy_options).run
            if result.error?
              fatal_error result.to_s
            else
              infov 'Result', result.label
            end
          end

          def deploy_options
            { reference: options.fetch('--reference'),
              appended_directories: ::Avm::PathString.paths(options.fetch('--append-dirs')) }
          end
        end
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
avm-tools-0.62.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.61.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.60.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.59.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.58.1 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.58.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.57.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.56.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.55.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.54.2 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.54.1 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.54.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.53.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.52.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.51.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.50.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.49.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.48.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.47.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb
avm-tools-0.46.0 lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb