Sha256: b0f9fd02dfff2f7e50cf22b7724316d9107314cba3fd05dc49f5a0ec3d2f0aa9

Contents?: true

Size: 1.79 KB

Versions: 89

Compression:

Stored size: 1.79 KB

Contents

# frozen_string_literal: true

require 'avm/data/package/dump'
require 'eac_cli/core_ext'

module Avm
  module EacWebappBase0
    module Instances
      module Runners
        class Data
          class Dump
            DUMP_EXPIRE_TIME = 1.day
            DEFAULT_DUMP_PATH_ENTRY_SUFFIX = 'data.default_dump_path'
            NO_DUMP_MESSAGE = 'Dump "%s" already exist and rewrite options was no setted nor ' \
              'dump was expired.'

            runner_with :help do
              desc 'Dump utility for EacRailsBase instance.'
              bool_opt '-w', '--rewrite', 'Forces dump overwrite.'
              arg_opt '-p', '--dump-path', 'Set DUMP_PATH variable.'
            end

            def run
              infov 'Instance to dump', "#{instance} (#{instance.class})"
              if package_dump.runnable?
                package_dump.run
              else
                warn(package_dump.cannot_run_reason)
              end
              success("Dump path: \"#{dump_path}\"")
              dump_path
            end

            private

            def instance
              runner_context.call(:instance)
            end

            def package_dump_uncached
              instance
                .data_package.dump(dump_path, existing: package_dump_existing)
            end

            def dump_path
              parsed.dump_path || default_dump_path
            end

            def default_dump_path
              instance.read_entry(DEFAULT_DUMP_PATH_ENTRY_SUFFIX)
            end

            def package_dump_existing
              if parsed.rewrite?
                ::Avm::Data::Package::Dump::EXISTING_ROTATE
              else
                ::Avm::Data::Package::Dump::EXISTING_ROTATE_EXPIRED
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

89 entries across 89 versions & 2 rubygems

Version Path
avm-eac_webapp_base0-0.16.0 lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.63.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
avm-eac_webapp_base0-0.15.1 lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.62.1 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.62.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.61.1 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.61.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.60.3 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.60.2 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
avm-eac_webapp_base0-0.15.0 lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.60.1 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.60.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.59.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.58.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.57.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.56.1 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
avm-eac_webapp_base0-0.14.0 lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.56.0 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.55.7 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb
eac_tools-0.55.6 sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/dump.rb