avm-tools 0.70.2 → 0.74.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/avm/{stereotypes/eac_rails_base0.rb → eac_rails_base0.rb} +1 -3
- data/lib/avm/eac_rails_base0/instance.rb +2 -5
- data/lib/avm/{rails/runners.rb → eac_rails_base1.rb} +2 -4
- data/lib/avm/eac_rails_base1/instance.rb +24 -0
- data/lib/avm/eac_rails_base1/runner.rb +12 -0
- data/lib/avm/eac_rails_base1/runner/bundle.rb +28 -0
- data/lib/avm/eac_rails_base1/runner/code_runner.rb +28 -0
- data/lib/avm/eac_rails_base1/runner_with/bundle.rb +57 -0
- data/lib/avm/{stereotypes/rails.rb → eac_redmine_base0.rb} +2 -4
- data/lib/avm/eac_redmine_base0/instance.rb +2 -4
- data/lib/avm/{stereotypes/eac_ubuntu_base0.rb → eac_ubuntu_base0.rb} +1 -3
- data/lib/avm/{stereotypes/eac_webapp_base0.rb → eac_webapp_base0.rb} +1 -3
- data/lib/avm/eac_webapp_base0/instance.rb +2 -2
- data/lib/avm/eac_webapp_base0/runner.rb +12 -0
- data/lib/avm/eac_webapp_base0/runner/apache_host.rb +2 -3
- data/lib/avm/eac_webapp_base0/runner/data.rb +1 -1
- data/lib/avm/eac_webapp_base0/runner/data/dump.rb +1 -1
- data/lib/avm/eac_webapp_base0/runner/data/load.rb +1 -1
- data/lib/avm/eac_webapp_base0/runner/deploy.rb +3 -16
- data/lib/avm/eac_wordpress_base0.rb +9 -0
- data/lib/avm/eac_wordpress_base0/apache_host.rb +25 -0
- data/lib/avm/eac_wordpress_base0/deploy.rb +10 -0
- data/lib/avm/eac_wordpress_base0/instance.rb +24 -0
- data/lib/avm/eac_writings_base0.rb +9 -0
- data/lib/avm/eac_writings_base0/commons.rb +12 -0
- data/lib/avm/eac_writings_base0/file_build.rb +45 -0
- data/lib/avm/eac_writings_base0/file_build/base_stereotype.rb +19 -0
- data/lib/avm/eac_writings_base0/file_build/chapter_index.rb +23 -0
- data/lib/avm/eac_writings_base0/file_build/tex_source.rb +33 -0
- data/lib/avm/eac_writings_base0/project.rb +33 -0
- data/lib/avm/eac_writings_base0/project_build.rb +117 -0
- data/lib/avm/eac_writings_base0/project_build/chapters_content.rb +47 -0
- data/lib/avm/eac_writings_base0/project_build/copy_files.rb +42 -0
- data/lib/avm/executables.rb +1 -1
- data/lib/avm/instances/application.rb +4 -0
- data/lib/avm/instances/base.rb +2 -1
- data/lib/avm/instances/base/auto_values.rb +2 -1
- data/lib/avm/instances/base/auto_values/access.rb +5 -4
- data/lib/avm/instances/base/auto_values/admin.rb +2 -2
- data/lib/avm/instances/base/auto_values/database.rb +1 -1
- data/lib/avm/instances/base/auto_values/filesystem.rb +6 -2
- data/lib/avm/instances/base/auto_values/mailer.rb +34 -0
- data/lib/avm/instances/base/auto_values/ruby.rb +1 -1
- data/lib/avm/instances/base/auto_values/system.rb +2 -2
- data/lib/avm/instances/entry.rb +7 -1
- data/lib/avm/instances/entry_keys.rb +42 -7
- data/lib/avm/instances/runner.rb +40 -0
- data/lib/avm/{stereotypes/postgresql.rb → postgresql.rb} +1 -3
- data/lib/avm/postgresql/instance.rb +63 -0
- data/lib/avm/postgresql/instance/data_unit.rb +39 -0
- data/lib/avm/postgresql/instance_with.rb +18 -0
- data/lib/avm/projects/stereotypes/git_subtree/publish.rb +2 -0
- data/lib/avm/projects/stereotypes/git_subtree/warp.rb +3 -0
- data/lib/avm/tools/runner.rb +3 -3
- data/lib/avm/tools/runner/eac_rails_base0.rb +5 -18
- data/lib/avm/tools/runner/eac_rails_base0/apache_path.rb +1 -1
- data/lib/avm/tools/runner/eac_rails_base0/bundle.rb +3 -3
- data/lib/avm/tools/runner/eac_rails_base0/rails_server.rb +35 -0
- data/lib/avm/tools/runner/eac_rails_base0/runner.rb +3 -3
- data/lib/avm/tools/runner/eac_redmine_base0.rb +5 -23
- data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +1 -1
- data/lib/avm/tools/runner/eac_redmine_base0/docker.rb +1 -1
- data/lib/avm/tools/runner/eac_redmine_base0/project_rename.rb +3 -3
- data/lib/avm/tools/runner/eac_wordpress_base0.rb +5 -24
- data/lib/avm/tools/runner/instance.rb +28 -0
- data/lib/avm/tools/runner/instance/info.rb +44 -0
- data/lib/avm/tools/runner/local_project/eac_writings_base0.rb +35 -0
- data/lib/avm/tools/runner/local_project/eac_writings_base0/build_chapters.rb +48 -0
- data/lib/avm/tools/runner/local_project/eac_writings_base0/build_single.rb +37 -0
- data/lib/avm/tools/runner/local_project/eac_writings_base0/info.rb +36 -0
- data/lib/avm/tools/version.rb +1 -1
- data/template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template +11 -0
- data/template/avm/eac_writings_base0/commons/all.tex +5 -0
- data/template/avm/eac_writings_base0/commons/ebook.tex +11 -0
- data/template/avm/eac_writings_base0/commons/images.tex +11 -0
- data/template/avm/eac_writings_base0/commons/links.tex +2 -0
- data/template/avm/eac_writings_base0/commons/portuguese.tex +8 -0
- data/template/avm/eac_writings_base0/commons/source_code.tex +21 -0
- data/template/avm/eac_writings_base0/commons/source_code/java.tex +15 -0
- data/template/avm/eac_writings_base0/commons/utils.tex +6 -0
- data/vendor/eac_cli/lib/eac_cli/runner.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/runner/context.rb +19 -2
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +12 -0
- data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +2 -1
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem/command.rb +1 -1
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +10 -6
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
- data/vendor/eac_ruby_gems_utils/spec/{rubocop_check_spec.rb → code/rubocop_check_spec.rb} +0 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +19 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/base.rb +43 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/configs/file.rb +12 -31
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/configs.rb +4 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +57 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash.rb +21 -58
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/entry_key_error.rb +8 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/node.rb +67 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb +39 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +2 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +4 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +16 -0
- data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/configs_spec.rb +15 -0
- data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/paths_hash_spec.rb +52 -13
- metadata +57 -30
- data/lib/avm/rails/runners/bundle.rb +0 -35
- data/lib/avm/rails/runners/runner.rb +0 -48
- data/lib/avm/stereotypes/eac_redmine_base0.rb +0 -11
- data/lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb +0 -27
- data/lib/avm/stereotypes/eac_wordpress_base0/deploy.rb +0 -12
- data/lib/avm/stereotypes/eac_wordpress_base0/instance.rb +0 -26
- data/lib/avm/stereotypes/postgresql/instance.rb +0 -65
- data/lib/avm/stereotypes/postgresql/instance/data_unit.rb +0 -41
- data/lib/avm/stereotypes/postgresql/instance_with.rb +0 -20
- data/lib/avm/stereotypes/rails/instance.rb +0 -20
- data/lib/avm/tools/runner/eac_rails_base0/apache_host.rb +0 -16
- data/lib/avm/tools/runner/eac_rails_base0/data.rb +0 -15
- data/lib/avm/tools/runner/eac_rails_base0/deploy.rb +0 -15
- data/lib/avm/tools/runner/eac_redmine_base0/bundle.rb +0 -14
- data/lib/avm/tools/runner/eac_redmine_base0/data.rb +0 -27
- data/lib/avm/tools/runner/eac_redmine_base0/data/dump.rb +0 -16
- data/lib/avm/tools/runner/eac_redmine_base0/deploy.rb +0 -15
- data/lib/avm/tools/runner/eac_redmine_base0/runner.rb +0 -14
- data/lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb +0 -17
- data/lib/avm/tools/runner/eac_wordpress_base0/data.rb +0 -15
- data/lib/avm/tools/runner/eac_wordpress_base0/deploy.rb +0 -15
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacWritingsBase0
|
7
|
+
class FileBuild
|
8
|
+
require_sub __FILE__
|
9
|
+
include ::Avm::EacWritingsBase0::FileBuild::BaseStereotype
|
10
|
+
DEFAULT_STEREOTYPES = [::Avm::EacWritingsBase0::FileBuild::ChapterIndex,
|
11
|
+
::Avm::EacWritingsBase0::FileBuild::TexSource].freeze
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def stereotypes
|
15
|
+
DEFAULT_STEREOTYPES
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
common_constructor :project, :subpath do
|
20
|
+
self.class.stereotypes.each do |stereotype|
|
21
|
+
singleton_class.prepend(stereotype) if stereotype.match?(subpath)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def build_to_dir(build_root_target_dir)
|
26
|
+
create_target_dir(build_root_target_dir)
|
27
|
+
copy(target_path(build_root_target_dir))
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def create_target_dir(build_root_target_dir)
|
33
|
+
FileUtils.mkdir_p(File.dirname(target_path(build_root_target_dir)))
|
34
|
+
end
|
35
|
+
|
36
|
+
def source_path
|
37
|
+
File.join(project.root, subpath)
|
38
|
+
end
|
39
|
+
|
40
|
+
def target_path(build_root_target_dir)
|
41
|
+
File.join(build_root_target_dir, target_subpath)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module EacWritingsBase0
|
5
|
+
class FileBuild
|
6
|
+
module BaseStereotype
|
7
|
+
private
|
8
|
+
|
9
|
+
def target_subpath
|
10
|
+
subpath
|
11
|
+
end
|
12
|
+
|
13
|
+
def copy(target_path)
|
14
|
+
FileUtils.copy_file(source_path, target_path)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module EacWritingsBase0
|
5
|
+
class FileBuild
|
6
|
+
module ChapterIndex
|
7
|
+
class << self
|
8
|
+
def match?(subpath)
|
9
|
+
::File.basename(subpath) == 'index.tex'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def target_subpath
|
16
|
+
::Avm::EacWritingsBase0::ProjectBuild.chapter_filename(
|
17
|
+
File.basename(File.dirname(subpath))
|
18
|
+
) + '.tex'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module EacWritingsBase0
|
5
|
+
class FileBuild
|
6
|
+
module TexSource
|
7
|
+
class << self
|
8
|
+
def match?(subpath)
|
9
|
+
::File.extname(subpath) == '.tex'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def copy(target_path)
|
16
|
+
::File.write(target_path, target_content)
|
17
|
+
end
|
18
|
+
|
19
|
+
def target_content
|
20
|
+
s = ::File.read(source_path)
|
21
|
+
replacements.each do |from, to|
|
22
|
+
s = s.gsub(from, to)
|
23
|
+
end
|
24
|
+
s
|
25
|
+
end
|
26
|
+
|
27
|
+
def replacements
|
28
|
+
{ '%dir%' => ::File.dirname(subpath) }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacWritingsBase0
|
7
|
+
class Project
|
8
|
+
common_constructor :root do
|
9
|
+
self.root = root.to_pathname
|
10
|
+
end
|
11
|
+
|
12
|
+
def chapters
|
13
|
+
chapters_file.read.split("\n").map(&:strip).reject { |c| c == '' }
|
14
|
+
end
|
15
|
+
|
16
|
+
def chapters_file
|
17
|
+
root.join('chapters')
|
18
|
+
end
|
19
|
+
|
20
|
+
def name
|
21
|
+
root.basename.to_s
|
22
|
+
end
|
23
|
+
|
24
|
+
def default_output_dir
|
25
|
+
root.join('dist')
|
26
|
+
end
|
27
|
+
|
28
|
+
def default_output_file
|
29
|
+
root.join("#{name}.pdf")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/executables'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/fs/temp'
|
6
|
+
require 'eac_ruby_utils/fs/clearable_directory'
|
7
|
+
|
8
|
+
module Avm
|
9
|
+
module EacWritingsBase0
|
10
|
+
class ProjectBuild
|
11
|
+
require_sub __FILE__, include_modules: true
|
12
|
+
enable_console_speaker
|
13
|
+
|
14
|
+
CONTENT_VAR = '%%%CONTENT%%%'
|
15
|
+
|
16
|
+
common_constructor :project, :options do
|
17
|
+
run
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
attr_reader :source_temp_dir
|
23
|
+
|
24
|
+
def run
|
25
|
+
start_banner
|
26
|
+
check_chapter
|
27
|
+
build
|
28
|
+
success('Done!')
|
29
|
+
end
|
30
|
+
|
31
|
+
def start_banner
|
32
|
+
infov('Chapter', chapter)
|
33
|
+
infov('Output file', output_file)
|
34
|
+
end
|
35
|
+
|
36
|
+
def build
|
37
|
+
on_temp_source_dir do
|
38
|
+
copy_project_files
|
39
|
+
copy_commons_files
|
40
|
+
include_content
|
41
|
+
compile
|
42
|
+
check
|
43
|
+
move_output_to_target
|
44
|
+
open_output
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def check
|
49
|
+
return if ::File.size(temp_output_file).positive?
|
50
|
+
|
51
|
+
fatal_error("Zero-size file builded: #{temp_output_file}")
|
52
|
+
end
|
53
|
+
|
54
|
+
def compile
|
55
|
+
compile_command.execute!.each_line do |line|
|
56
|
+
if line.include?('No file')
|
57
|
+
raise 'Command returned without error, but there is at least one "No file" line in' \
|
58
|
+
"log: #{line}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def compile_command
|
64
|
+
::Avm::Executables.latex.command(*compile_command_args).chdir(source_temp_dir)
|
65
|
+
end
|
66
|
+
|
67
|
+
def compile_command_args
|
68
|
+
r = ["-output-director=#{build_dir}", '-output-format=pdf',
|
69
|
+
'-interaction=nonstopmode', '-halt-on-error', '-file-line-error']
|
70
|
+
r << if chapter.present?
|
71
|
+
"\\includeonly{#{chapter_filename(chapter)}}\\input{main.tex}"
|
72
|
+
else
|
73
|
+
'./main.tex'
|
74
|
+
end
|
75
|
+
r
|
76
|
+
end
|
77
|
+
|
78
|
+
def move_output_to_target
|
79
|
+
File.rename(temp_output_file, output_file)
|
80
|
+
infov('Size', ::Filesize.from("#{File.size(output_file)} B").pretty)
|
81
|
+
end
|
82
|
+
|
83
|
+
def temp_output_file
|
84
|
+
File.join(build_dir, 'main.pdf')
|
85
|
+
end
|
86
|
+
|
87
|
+
def on_temp_source_dir
|
88
|
+
if options[:source_dir].present?
|
89
|
+
@source_temp_dir = ::EacRubyUtils::Fs::ClearableDirectory.new(options.source_dir).clear
|
90
|
+
yield
|
91
|
+
else
|
92
|
+
::EacRubyUtils::Fs::Temp.on_directory do |directory|
|
93
|
+
@source_temp_dir = directory
|
94
|
+
yield
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def build_dir
|
100
|
+
r = project.root.join('build')
|
101
|
+
r.mkpath
|
102
|
+
r
|
103
|
+
end
|
104
|
+
|
105
|
+
def output_file
|
106
|
+
(options[:output_file] || project.default_output_file)
|
107
|
+
end
|
108
|
+
|
109
|
+
def open_output
|
110
|
+
return unless options[:open]
|
111
|
+
|
112
|
+
infom("Opening \"#{output_file}\"")
|
113
|
+
::Avm::Executables.xdg_open.command(output_file).system!
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module EacWritingsBase0
|
5
|
+
class ProjectBuild
|
6
|
+
class << self
|
7
|
+
def chapter_filename(chapter_name)
|
8
|
+
"chapter_#{chapter_name}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module ChaptersContent
|
13
|
+
private
|
14
|
+
|
15
|
+
def chapter
|
16
|
+
options[:chapter]
|
17
|
+
end
|
18
|
+
|
19
|
+
def chapter_filename(chapter_name)
|
20
|
+
::Avm::EacWritingsBase0::ProjectBuild.chapter_filename(chapter_name)
|
21
|
+
end
|
22
|
+
|
23
|
+
def check_chapter
|
24
|
+
return unless chapter
|
25
|
+
return if project.chapters.include?(chapter)
|
26
|
+
|
27
|
+
fatal_error("Chapter not found: \"#{chapter}\" (List: #{project.chapters})")
|
28
|
+
end
|
29
|
+
|
30
|
+
def include_content
|
31
|
+
main_path = source_temp_dir.join('main.tex')
|
32
|
+
main_path.write(main_path.read.gsub(CONTENT_VAR, include_chapters_content))
|
33
|
+
end
|
34
|
+
|
35
|
+
def include_chapters_content
|
36
|
+
r = chapters_content
|
37
|
+
r = "\\maketitle\n\n#{r}" if chapter.blank?
|
38
|
+
r
|
39
|
+
end
|
40
|
+
|
41
|
+
def chapters_content
|
42
|
+
project.chapters.map { |c| "\\include{#{chapter_filename(c)}}" }.join("\n")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_writings_base0/commons'
|
4
|
+
require 'avm/eac_writings_base0/file_build'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWritingsBase0
|
8
|
+
class ProjectBuild
|
9
|
+
module CopyFiles
|
10
|
+
def copy_project_files
|
11
|
+
copy_project_dir('.')
|
12
|
+
end
|
13
|
+
|
14
|
+
def copy_project_obj(subpath)
|
15
|
+
return if File.basename(subpath).start_with?('.')
|
16
|
+
|
17
|
+
if File.directory?(File.join(project.root, subpath))
|
18
|
+
copy_project_dir(subpath)
|
19
|
+
else
|
20
|
+
copy_project_file(subpath)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def copy_project_file(subpath)
|
25
|
+
::Avm::EacWritingsBase0::FileBuild.new(project, subpath).build_to_dir(source_temp_dir)
|
26
|
+
end
|
27
|
+
|
28
|
+
def copy_project_dir(subpath)
|
29
|
+
Dir.entries(File.join(project.root, subpath)).each do |f|
|
30
|
+
copy_project_obj(File.join(subpath, f))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def copy_commons_files
|
35
|
+
target_dir = source_temp_dir.join('commons')
|
36
|
+
target_dir.mkpath
|
37
|
+
::Avm::EacWritingsBase0::Commons.instance.template.apply(self, target_dir)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/avm/executables.rb
CHANGED
@@ -14,7 +14,7 @@ module Avm
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
%w[docker file git php-cs-fixer tidy yapf].each do |program|
|
17
|
+
%w[docker file git latex php-cs-fixer tidy yapf xdg-open].each do |program|
|
18
18
|
define_method(program.underscore + '_uncached') do
|
19
19
|
env.executable(program, '--version')
|
20
20
|
end
|
data/lib/avm/instances/base.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'eac_ruby_utils/require_sub'
|
4
4
|
require 'eac_ruby_utils/simple_cache'
|
5
5
|
require 'avm/instances/entries'
|
6
|
+
require 'avm/instances/entry_keys'
|
6
7
|
::EacRubyUtils.require_sub(__FILE__)
|
7
8
|
|
8
9
|
module Avm
|
@@ -62,7 +63,7 @@ module Avm
|
|
62
63
|
private
|
63
64
|
|
64
65
|
def source_instance_uncached
|
65
|
-
::Avm::Instances::Base.by_id(read_entry(
|
66
|
+
::Avm::Instances::Base.by_id(read_entry(::Avm::Instances::EntryKeys::SOURCE_INSTANCE_ID))
|
66
67
|
end
|
67
68
|
end
|
68
69
|
end
|
@@ -10,7 +10,8 @@ module Avm
|
|
10
10
|
extend ::ActiveSupport::Concern
|
11
11
|
|
12
12
|
included do
|
13
|
-
%w[Access Admin Data Database Filesystem Ruby Source System Web]
|
13
|
+
%w[Access Admin Data Database Filesystem Mailer Ruby Source System Web]
|
14
|
+
.each do |class_name|
|
14
15
|
include const_get(class_name)
|
15
16
|
end
|
16
17
|
end
|
@@ -10,19 +10,20 @@ module Avm
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def auto_ssh_hostname
|
13
|
-
inherited_entry_value(
|
13
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.hostname')
|
14
14
|
end
|
15
15
|
|
16
16
|
def auto_ssh_port
|
17
|
-
inherited_entry_value(
|
17
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.port') || 22
|
18
18
|
end
|
19
19
|
|
20
20
|
def auto_ssh_username
|
21
|
-
inherited_entry_value(
|
21
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.username')
|
22
22
|
end
|
23
23
|
|
24
24
|
def auto_ssh_url
|
25
|
-
inherited_entry_value(
|
25
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.url') ||
|
26
|
+
auto_ssh_url_by_parts
|
26
27
|
end
|
27
28
|
|
28
29
|
def auto_ssh_url_by_parts
|