avm-tools 0.90.0 → 0.94.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avm/eac_asciidoctor_base0/apache_path.rb +10 -0
- data/lib/avm/eac_asciidoctor_base0/build.rb +3 -1
- data/lib/avm/eac_asciidoctor_base0/build/file.rb +3 -3
- data/lib/avm/eac_rails_base0/apache_path.rb +6 -38
- data/lib/avm/eac_webapp_base0/apache_host.rb +7 -31
- data/lib/avm/eac_webapp_base0/apache_path.rb +51 -0
- data/lib/avm/eac_webapp_base0/deploy.rb +12 -30
- data/lib/avm/eac_webapp_base0/runner/apache_host.rb +7 -10
- data/lib/avm/eac_webapp_base0/runner/apache_path.rb +40 -0
- data/lib/avm/eac_webapp_base0/runner/data.rb +6 -15
- data/lib/avm/eac_webapp_base0/runner/data/dump.rb +18 -24
- data/lib/avm/eac_webapp_base0/runner/data/load.rb +12 -23
- data/lib/avm/executables.rb +1 -1
- data/lib/avm/git/auto_commit/commit_info.rb +23 -0
- data/lib/avm/git/auto_commit/rules.rb +31 -0
- data/lib/avm/git/auto_commit/rules/base.rb +39 -0
- data/lib/avm/git/auto_commit/rules/last.rb +19 -0
- data/lib/avm/git/auto_commit/rules/manual.rb +45 -0
- data/lib/avm/git/auto_commit/rules/new.rb +24 -0
- data/lib/avm/git/auto_commit/rules/nth.rb +31 -0
- data/lib/avm/git/auto_commit/rules/unique.rb +21 -0
- data/lib/avm/git/auto_commit_path.rb +0 -21
- data/lib/avm/git/file_auto_fixup.rb +26 -57
- data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +7 -11
- data/lib/avm/tools/runner/git/auto_commit.rb +30 -31
- data/lib/avm/tools/runner/git/commit.rb +11 -20
- data/lib/avm/tools/runner/git/subrepo/fix.rb +1 -1
- data/lib/avm/tools/runner/local_project/ruby.rb +3 -7
- data/lib/avm/tools/runner/local_project/ruby/bundler.rb +1 -1
- data/lib/avm/tools/runner/local_project/ruby/bundler/gemfile_lock.rb +1 -1
- data/lib/avm/tools/runner/ruby.rb +6 -14
- data/lib/avm/tools/runner/ruby/gems.rb +4 -7
- data/lib/avm/tools/runner/ruby/gems/generate.rb +12 -23
- data/lib/avm/tools/runner/ruby/rubocop.rb +1 -1
- data/lib/avm/tools/version.rb +1 -1
- data/template/avm/eac_rails_base0/apache_path/extra_content.conf +5 -0
- data/template/avm/eac_webapp_base0/apache_path/default.conf +9 -0
- data/vendor/avm-apps/Gemfile +5 -0
- data/vendor/avm-apps/avm-apps.gemspec +18 -0
- data/vendor/avm-apps/lib/avm/apps.rb +9 -0
- data/vendor/avm-apps/lib/avm/apps/jobs.rb +11 -0
- data/vendor/avm-apps/lib/avm/apps/jobs/base.rb +64 -0
- data/vendor/avm-apps/lib/avm/apps/jobs/variables_source.rb +24 -0
- data/vendor/avm-apps/lib/avm/apps/version.rb +7 -0
- data/vendor/avm-apps/spec/rubocop_spec.rb +7 -0
- data/vendor/avm-apps/spec/spec_helper.rb +100 -0
- data/vendor/eac_cli/lib/eac_cli/core_ext.rb +2 -0
- data/vendor/eac_cli/lib/eac_cli/definition/alternative.rb +4 -7
- data/vendor/eac_cli/lib/eac_cli/definition/argument_option.rb +8 -0
- data/vendor/eac_cli/lib/eac_cli/definition/base_option.rb +21 -9
- data/vendor/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb +47 -0
- data/vendor/eac_cli/lib/eac_cli/definition/boolean_option.rb +8 -0
- data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +12 -0
- data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +15 -1
- data/vendor/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +4 -2
- data/vendor/eac_cli/lib/eac_cli/parser/collector.rb +3 -17
- data/vendor/eac_cli/lib/eac_cli/patches/object/runner_with.rb +2 -1
- data/vendor/eac_cli/lib/eac_cli/runner_with_set.rb +50 -0
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +4 -0
- data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +21 -3
- data/vendor/eac_git/lib/eac_git/local/dirty_files.rb +2 -3
- data/vendor/eac_git/lib/eac_git/version.rb +1 -1
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +4 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +31 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches.rb +4 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/class.rb +4 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +10 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/object.rb +5 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/patches/object/runner_with.rb +5 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb +9 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +36 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/filesystem_traverser.rb +52 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/vendor/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/confirmation_spec.rb +42 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +8 -2
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +10 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +17 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +11 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +60 -5
- data/lib/avm/tools/runner/eac_rails_base0/apache_path.rb +0 -38
- data/lib/avm/tools/runner/git/auto_fixup.rb +0 -53
- data/template/avm/eac_rails_base0/apache_path/default.conf +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce4ced28e926994fcd39732b69129d78a0a84b4fa7327d4f717a8ea218be36e
|
4
|
+
data.tar.gz: 0561dd8132497d54f2eecb2b933968aca705c3976a6ae198d8394257bf9f0d29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a63ff3adcd87aeaddcfee5045359c45d232bbc4d8d3dd4774a75d07feabc34493ee6432fe52a0b95e10aed80a3603a71f23dcfc5ae478e0dfd07cc331aeccfb1
|
7
|
+
data.tar.gz: 83e4d3667c0f4dbe11c3421a27f786dce65cd698c0c1867d23dc16191c13c6cbc6574be40aa9c9728b4c69a72e267792ad6de892da13c0d34df0c864142e4f13
|
@@ -15,6 +15,8 @@ module Avm
|
|
15
15
|
self.options = self.class.lists.option.hash_keys_validate!(options.symbolize_keys)
|
16
16
|
end
|
17
17
|
|
18
|
+
SOURCE_EXTNAMES = %w[.adoc .asc].freeze
|
19
|
+
|
18
20
|
def run
|
19
21
|
infov 'Files to build', source_files.count
|
20
22
|
target_directory.clear
|
@@ -34,7 +36,7 @@ module Avm
|
|
34
36
|
def source_files_uncached
|
35
37
|
r = []
|
36
38
|
project.root.children.each do |child|
|
37
|
-
next unless child.extname
|
39
|
+
next unless SOURCE_EXTNAMES.include?(child.extname)
|
38
40
|
|
39
41
|
r << ::Avm::EacAsciidoctorBase0::Build::File.new(self, child.basename)
|
40
42
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'asciidoctor'
|
4
4
|
|
5
5
|
module Avm
|
6
6
|
module EacAsciidoctorBase0
|
@@ -11,8 +11,8 @@ module Avm
|
|
11
11
|
|
12
12
|
def run
|
13
13
|
infov 'Building', subpath
|
14
|
-
|
15
|
-
|
14
|
+
::Asciidoctor.convert_file source_path.to_path,
|
15
|
+
to_file: target_path.to_path, safe: :unsafe, mkdirs: true
|
16
16
|
end
|
17
17
|
|
18
18
|
def source_path
|
@@ -1,49 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/eac_webapp_base0/apache_path'
|
4
4
|
require 'eac_ruby_utils/core_ext'
|
5
5
|
|
6
6
|
module Avm
|
7
7
|
module EacRailsBase0
|
8
|
-
class ApachePath
|
9
|
-
|
10
|
-
|
11
|
-
common_constructor :instance, :options, default: [{}]
|
12
|
-
|
13
|
-
def run
|
14
|
-
write_available_conf
|
15
|
-
enable_conf
|
16
|
-
reload_apache
|
17
|
-
::Avm::Result.success('Done')
|
18
|
-
end
|
19
|
-
|
20
|
-
def content
|
21
|
-
template.child('default.conf').apply(instance)
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def apache_uncached
|
27
|
-
::Avm::EacUbuntuBase0::Apache.new(instance.host_env)
|
28
|
-
end
|
29
|
-
|
30
|
-
def enable_conf
|
31
|
-
infom 'Enabling configuration...'
|
32
|
-
conf.enable
|
33
|
-
end
|
34
|
-
|
35
|
-
def reload_apache
|
36
|
-
infom 'Reloading Apache...'
|
37
|
-
apache.service('reload')
|
38
|
-
end
|
39
|
-
|
40
|
-
def conf_uncached
|
41
|
-
apache.conf(instance.id)
|
8
|
+
class ApachePath < ::Avm::EacWebappBase0::ApachePath
|
9
|
+
def document_root
|
10
|
+
::File.join(super, 'public')
|
42
11
|
end
|
43
12
|
|
44
|
-
def
|
45
|
-
|
46
|
-
conf.write(content)
|
13
|
+
def extra_content
|
14
|
+
template.child('extra_content.conf').apply(instance)
|
47
15
|
end
|
48
16
|
end
|
49
17
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'avm/apps/jobs/base'
|
4
5
|
require 'avm/patches/object/template'
|
5
6
|
require 'avm/eac_ubuntu_base0/apache'
|
6
7
|
require 'avm/patches/object/template'
|
@@ -8,24 +9,14 @@ require 'avm/patches/object/template'
|
|
8
9
|
module Avm
|
9
10
|
module EacWebappBase0
|
10
11
|
class ApacheHost
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def run
|
16
|
-
write_available_no_ssl_site
|
17
|
-
enable_no_ssl_site
|
18
|
-
remove_ssl_site
|
19
|
-
reload_apache
|
20
|
-
run_certbot
|
21
|
-
enable_ssl_site
|
22
|
-
reload_apache
|
23
|
-
::Avm::Result.success('Done')
|
24
|
-
end
|
12
|
+
JOBS = %w[write_available_no_ssl_site enable_no_ssl_site remove_ssl_site reload_apache
|
13
|
+
run_certbot enable_ssl_site reload_apache].freeze
|
14
|
+
include ::Avm::Apps::Jobs::Base
|
25
15
|
|
26
16
|
def no_ssl_site_content
|
27
|
-
::Avm::EacWebappBase0::ApacheHost
|
28
|
-
|
17
|
+
::Avm::EacWebappBase0::ApacheHost
|
18
|
+
.template.child('no_ssl.conf')
|
19
|
+
.apply(variables_source)
|
29
20
|
end
|
30
21
|
|
31
22
|
def ssl?
|
@@ -83,21 +74,6 @@ module Avm
|
|
83
74
|
infom 'Writing no SSL site conf...'
|
84
75
|
no_ssl_site.write(no_ssl_site_content)
|
85
76
|
end
|
86
|
-
|
87
|
-
class EntriesReader
|
88
|
-
common_constructor :job, :instance
|
89
|
-
|
90
|
-
def read_entry(path, options = {})
|
91
|
-
entry_from_job(path) || instance.read_entry(path, options)
|
92
|
-
end
|
93
|
-
|
94
|
-
private
|
95
|
-
|
96
|
-
def entry_from_job(path)
|
97
|
-
method = path.gsub('.', '_').underscore
|
98
|
-
return job.send(method) if job.respond_to?(method, true)
|
99
|
-
end
|
100
|
-
end
|
101
77
|
end
|
102
78
|
end
|
103
79
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/apps/jobs/base'
|
4
|
+
require 'avm/eac_ubuntu_base0/apache'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module EacWebappBase0
|
9
|
+
class ApachePath
|
10
|
+
JOBS = %w[write_available_conf enable_conf reload_apache].freeze
|
11
|
+
include ::Avm::Apps::Jobs::Base
|
12
|
+
|
13
|
+
def content
|
14
|
+
::Avm::EacWebappBase0::ApachePath.template.child('default.conf').apply(variables_source)
|
15
|
+
end
|
16
|
+
|
17
|
+
def document_root
|
18
|
+
instance.read_entry(::Avm::Instances::EntryKeys::FS_PATH)
|
19
|
+
end
|
20
|
+
|
21
|
+
def extra_content
|
22
|
+
''
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def apache_uncached
|
28
|
+
::Avm::EacUbuntuBase0::Apache.new(instance.host_env)
|
29
|
+
end
|
30
|
+
|
31
|
+
def enable_conf
|
32
|
+
infom 'Enabling configuration...'
|
33
|
+
conf.enable
|
34
|
+
end
|
35
|
+
|
36
|
+
def reload_apache
|
37
|
+
infom 'Reloading Apache...'
|
38
|
+
apache.service('reload')
|
39
|
+
end
|
40
|
+
|
41
|
+
def conf_uncached
|
42
|
+
apache.conf(instance.id)
|
43
|
+
end
|
44
|
+
|
45
|
+
def write_available_conf
|
46
|
+
infom 'Writing available configuration...'
|
47
|
+
conf.write(content)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'active_support/callbacks'
|
4
|
+
require 'avm/apps/jobs/base'
|
4
5
|
require 'avm/git'
|
5
6
|
require 'avm/patches/object/template'
|
6
7
|
require 'eac_ruby_utils/core_ext'
|
@@ -11,30 +12,23 @@ module Avm
|
|
11
12
|
module EacWebappBase0
|
12
13
|
class Deploy
|
13
14
|
require_sub __FILE__, include_modules: true
|
14
|
-
include ::ActiveSupport::Callbacks
|
15
15
|
|
16
16
|
DEFAULT_REFERENCE = 'HEAD'
|
17
17
|
|
18
|
-
enable_console_speaker
|
19
|
-
enable_simple_cache
|
20
|
-
enable_listable
|
21
|
-
lists.add_symbol :option, :appended_directories, :no_request_test, :reference
|
22
|
-
common_constructor :instance, :options, default: [{}] do
|
23
|
-
self.options = ::Avm::EacWebappBase0::Deploy.lists.option
|
24
|
-
.hash_keys_validate!(options.symbolize_keys)
|
25
|
-
end
|
26
|
-
|
27
18
|
REQUEST_TEST_JOB = 'request_test'
|
28
19
|
JOBS = (%w[create_build_dir build_content append_instance_content write_on_target
|
29
20
|
setup_files_units assert_instance_branch] + [REQUEST_TEST_JOB]).freeze
|
30
|
-
|
21
|
+
|
22
|
+
include ::Avm::Apps::Jobs::Base
|
23
|
+
|
24
|
+
lists.add_symbol :option, :appended_directories, :no_request_test, :reference
|
25
|
+
|
26
|
+
def option_list
|
27
|
+
::Avm::EacWebappBase0::Deploy.lists.option
|
28
|
+
end
|
31
29
|
|
32
30
|
def run
|
33
|
-
|
34
|
-
run_jobs
|
35
|
-
::Avm::Result.success('Deployed')
|
36
|
-
rescue ::Avm::Result::Error => e
|
37
|
-
e.to_result
|
31
|
+
super
|
38
32
|
ensure
|
39
33
|
remove_build_dir
|
40
34
|
end
|
@@ -67,25 +61,13 @@ module Avm
|
|
67
61
|
fatal_error "Request to #{uri} failed" unless response.code.to_i == 200
|
68
62
|
end
|
69
63
|
|
70
|
-
|
71
|
-
instance
|
72
|
-
end
|
73
|
-
|
74
|
-
private
|
64
|
+
protected
|
75
65
|
|
76
66
|
def jobs
|
77
|
-
r =
|
67
|
+
r = super
|
78
68
|
r.delete(REQUEST_TEST_JOB) if options[OPTION_NO_REQUEST_TEST]
|
79
69
|
r
|
80
70
|
end
|
81
|
-
|
82
|
-
def run_jobs
|
83
|
-
jobs.each do |job|
|
84
|
-
run_callbacks job do
|
85
|
-
send(job)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
71
|
end
|
90
72
|
end
|
91
73
|
end
|
@@ -1,22 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
3
|
+
require 'avm/instances/runner'
|
4
|
+
require 'eac_cli/core_ext'
|
5
5
|
|
6
6
|
module Avm
|
7
7
|
module EacWebappBase0
|
8
8
|
class Runner < ::Avm::Instances::Runner
|
9
|
-
class ApacheHost
|
10
|
-
|
11
|
-
|
12
|
-
runner_definition do
|
9
|
+
class ApacheHost
|
10
|
+
runner_with :help do
|
13
11
|
desc 'Configure Apache virtual host for instance.'
|
14
12
|
bool_opt '-c', '--certbot', 'Install certbot.'
|
15
13
|
end
|
16
14
|
|
17
15
|
def run
|
18
|
-
|
19
|
-
result = stereotype_apache_host_class.new(context(:instance),
|
16
|
+
result = stereotype_apache_host_class.new(runner_context.call(:instance),
|
20
17
|
stereotype_apache_host_options).run
|
21
18
|
if result.error?
|
22
19
|
fatal_error result.to_s
|
@@ -26,11 +23,11 @@ module Avm
|
|
26
23
|
end
|
27
24
|
|
28
25
|
def stereotype_apache_host_class
|
29
|
-
"#{
|
26
|
+
"#{runner_context.call(:instance).class.name.deconstantize}::ApacheHost".constantize
|
30
27
|
end
|
31
28
|
|
32
29
|
def stereotype_apache_host_options
|
33
|
-
{ certbot:
|
30
|
+
{ certbot: parsed.certbot? }
|
34
31
|
end
|
35
32
|
end
|
36
33
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/core_ext'
|
4
|
+
require 'avm/instances/runner'
|
5
|
+
require 'avm/eac_webapp_base0/runner/apache_host'
|
6
|
+
require 'avm/eac_rails_base0/apache_path'
|
7
|
+
|
8
|
+
module Avm
|
9
|
+
module EacWebappBase0
|
10
|
+
class Runner < ::Avm::Instances::Runner
|
11
|
+
class ApachePath
|
12
|
+
runner_with :help do
|
13
|
+
desc 'Configure Apache path configuration for instance.'
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
if result.error?
|
18
|
+
fatal_error result.to_s
|
19
|
+
else
|
20
|
+
infov 'Result', result.label
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def apache_path_uncached
|
27
|
+
stereotype_apache_path_class.new(runner_context.call(:instance))
|
28
|
+
end
|
29
|
+
|
30
|
+
def result_uncached
|
31
|
+
apache_path.run
|
32
|
+
end
|
33
|
+
|
34
|
+
def stereotype_apache_path_class
|
35
|
+
"#{runner_context.call(:instance).class.name.deconstantize}::ApachePath".constantize
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -1,24 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
require 'eac_ruby_utils/require_sub'
|
3
|
+
require 'eac_cli/core_ext'
|
5
4
|
|
6
5
|
module Avm
|
7
6
|
module EacWebappBase0
|
8
7
|
class Runner < ::Avm::Instances::Runner
|
9
|
-
class Data
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
Usage:
|
16
|
-
__PROGRAM__ __SUBCOMMANDS__
|
17
|
-
__PROGRAM__ -h | --help
|
18
|
-
|
19
|
-
Options:
|
20
|
-
-h --help Show this screen.
|
21
|
-
DOCOPT
|
8
|
+
class Data
|
9
|
+
require_sub __FILE__
|
10
|
+
runner_with :help, :subcommands do
|
11
|
+
desc 'Data utilities for EacRailsBase0 instances.'
|
12
|
+
end
|
22
13
|
end
|
23
14
|
end
|
24
15
|
end
|
@@ -1,37 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'active_support/core_ext/numeric/time'
|
4
|
-
require 'eac_ruby_utils/console/speaker'
|
5
|
-
require 'eac_ruby_utils/simple_cache'
|
6
3
|
require 'avm/data/package/dump'
|
4
|
+
require 'eac_cli/core_ext'
|
7
5
|
|
8
6
|
module Avm
|
9
7
|
module EacWebappBase0
|
10
8
|
class Runner < ::Avm::Instances::Runner
|
11
|
-
class Data
|
12
|
-
class Dump
|
13
|
-
include ::EacRubyUtils::SimpleCache
|
14
|
-
include ::EacRubyUtils::Console::Speaker
|
15
|
-
|
9
|
+
class Data
|
10
|
+
class Dump
|
16
11
|
DUMP_EXPIRE_TIME = 1.day
|
17
12
|
DEFAULT_DUMP_PATH_ENTRY_SUFFIX = 'data.default_dump_path'
|
18
13
|
NO_DUMP_MESSAGE = 'Dump "%s" already exist and rewrite options was no setted nor ' \
|
19
14
|
'dump was expired.'
|
20
15
|
|
21
|
-
|
22
|
-
Dump utility for EacRailsBase instance.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
Options:
|
28
|
-
-h --help Show this screen.
|
29
|
-
--rewrite Forces dump overwrite.
|
30
|
-
--dump-path=<dump_path> Set DUMP_PATH variable.
|
31
|
-
DOCUMENT
|
16
|
+
runner_with :help do
|
17
|
+
desc 'Dump utility for EacRailsBase instance.'
|
18
|
+
bool_opt '-w', 'rewrite', 'Forces dump overwrite.'
|
19
|
+
arg_opt '-p', '--dump-path', 'Set DUMP_PATH variable.'
|
20
|
+
end
|
32
21
|
|
33
22
|
def run
|
34
|
-
infov 'Instance to dump', "#{
|
23
|
+
infov 'Instance to dump', "#{instance} (#{instance.class})"
|
35
24
|
if package_dump.runnable?
|
36
25
|
package_dump.run
|
37
26
|
else
|
@@ -43,20 +32,25 @@ module Avm
|
|
43
32
|
|
44
33
|
private
|
45
34
|
|
35
|
+
def instance
|
36
|
+
runner_context.call(:instance)
|
37
|
+
end
|
38
|
+
|
46
39
|
def package_dump_uncached
|
47
|
-
|
40
|
+
instance
|
41
|
+
.data_package.dump(dump_path, existing: package_dump_existing)
|
48
42
|
end
|
49
43
|
|
50
44
|
def dump_path
|
51
|
-
|
45
|
+
parsed.dump_path || default_dump_path
|
52
46
|
end
|
53
47
|
|
54
48
|
def default_dump_path
|
55
|
-
|
49
|
+
instance.read_entry(DEFAULT_DUMP_PATH_ENTRY_SUFFIX)
|
56
50
|
end
|
57
51
|
|
58
52
|
def package_dump_existing
|
59
|
-
if
|
53
|
+
if parsed.rewrite?
|
60
54
|
::Avm::Data::Package::Dump::EXISTING_ROTATE
|
61
55
|
else
|
62
56
|
::Avm::Data::Package::Dump::EXISTING_ROTATE_EXPIRED
|