Sha256: 88612252759e8c73c9baa3005aa2a360e189e445a7423108e2bd082ce1aaf4d6

Contents?: true

Size: 1.72 KB

Versions: 17

Compression:

Stored size: 1.72 KB

Contents

# frozen_string_literal: true

require 'avm/eac_redmine_base0/core_update'
require 'eac_cli/default_runner'
require 'eac_ruby_utils/console/docopt_runner'
require 'eac_ruby_utils/core_ext'

module Avm
  module Tools
    class Runner < ::EacRubyUtils::Console::DocoptRunner
      class EacRedmineBase0 < ::Avm::EacRailsBase1::Runner
        class CoreUpdate < ::EacRubyUtils::Console::DocoptRunner
          include ::EacCli::DefaultRunner

          runner_definition do
            arg_opt '-u', '--url', 'Core\'s package URL.'
            arg_opt '-v', '--version', 'Core\'s version.'
            desc 'Update instance\' core.'
          end

          def run
            start_banner
            validate
            update
          end

          private

          def start_banner
            infov 'URL', url
            infov 'Version', version
          end

          def update
            ::Avm::EacRedmineBase0::CoreUpdate.new(context(:instance), version, url).run
          end

          def url
            options.fetch('--url') || url_by_version
          end

          def url_by_version
            options.fetch('--version').if_present do |v|
              "https://www.redmine.org/releases/redmine-#{v}.tar.gz"
            end
          end

          def validate
            %w[url version].each do |attr|
              fatal_error "\"#{attr}\" is blank. See avaiable options." if send(attr).blank?
            end
          end

          def version
            options.fetch('--version') || version_by_url
          end

          def version_by_url
            options.fetch('--url').if_present do |v|
              /(\d+.\d+.\d+)/.if_match(v, false) { |m| m[1] }
            end
          end
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
avm-tools-0.86.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.85.1 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.85.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.84.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.83.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.82.1 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.82.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.81.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.80.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.79.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.78.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.77.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.76.1 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.76.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.75.1 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.75.0 lib/avm/tools/runner/eac_redmine_base0/core_update.rb
avm-tools-0.74.1 lib/avm/tools/runner/eac_redmine_base0/core_update.rb