eac_tools 0.86.7 → 0.86.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -9
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm-eac_webapp_base0/Gemfile +8 -0
- data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +25 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +26 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +48 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +22 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +43 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +22 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +25 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +24 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +26 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats.rb +11 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_base.rb +33 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_host.rb +78 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_path.rb +42 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/apache.rb +44 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +22 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base.rb +44 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb +27 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/build.rb +50 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/scm.rb +72 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb +53 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/version.rb +26 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb +20 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +73 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes/web_server.rb +37 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes.rb +13 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_host.rb +36 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_path.rb +40 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/data/load.rb +60 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb +43 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners.rb +13 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb +15 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources.rb +11 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0.rb +9 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.source +8 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.target +8 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.source +5 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.target +5 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.source +29 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.target +21 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.source +8 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.target +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.source +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.target +9 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/instances/base_spec.rb +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/sources/base_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/rubocop_spec.rb +3 -0
- data/sub/avm-eac_webapp_base0/spec/spec_helper.rb +4 -0
- data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_host/no_ssl.conf +11 -0
- data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_path/default.conf +7 -0
- metadata +62 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a651785bbad5b6e82261dd8b700b59444065b413a84e1761eaeb52b5f678e8b
|
4
|
+
data.tar.gz: a83ff785fb5a584a6d53a241df483c72d82f73331d0988ca7a46d28da1995342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 421d195b6f42b45c6dde83b4357307aa3acc9332be4925fd89aef01fd9e65d4fda2abc52424bb45ae236da15326ca69b291458895274a6ecefa72efa9595916d
|
7
|
+
data.tar.gz: 7ab426184c8b950306561e5762219be50cb101eeef7a09edf422d72d9da0dbcaff488883c8dd17386231ae39b82c33f080783e315cc78c4302c64afa14efb5de
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eac_tools (0.86.
|
4
|
+
eac_tools (0.86.8)
|
5
5
|
avm (~> 0.86, >= 0.86.2)
|
6
6
|
avm-eac_asciidoctor_base0 (~> 0.22)
|
7
7
|
avm-eac_generic_base0 (~> 0.12, >= 0.12.2)
|
@@ -16,7 +16,7 @@ PATH
|
|
16
16
|
avm-eac_redmine_base0 (~> 0.22)
|
17
17
|
avm-eac_redmine_plugin_base0 (~> 0.4, >= 0.4.1)
|
18
18
|
avm-eac_ruby_base1 (~> 0.33, >= 0.33.1)
|
19
|
-
avm-eac_webapp_base0 (~> 0.18, >= 0.18.
|
19
|
+
avm-eac_webapp_base0 (~> 0.18, >= 0.18.4)
|
20
20
|
avm-eac_wordpress_base0 (~> 0.3, >= 0.3.1)
|
21
21
|
avm-git (~> 0.17)
|
22
22
|
avm-tools (~> 0.161)
|
@@ -44,6 +44,18 @@ PATH
|
|
44
44
|
eac_ruby_utils (~> 0.117, >= 0.117.1)
|
45
45
|
eac_templates (~> 0.5)
|
46
46
|
|
47
|
+
PATH
|
48
|
+
remote: sub/avm-eac_webapp_base0
|
49
|
+
specs:
|
50
|
+
avm-eac_webapp_base0 (0.18.4)
|
51
|
+
avm (~> 0.86, >= 0.86.2)
|
52
|
+
avm-eac_generic_base0 (~> 0.12, >= 0.12.2)
|
53
|
+
avm-eac_postgresql_base0 (~> 0.5, >= 0.5.3)
|
54
|
+
avm-eac_ubuntu_base0 (~> 0.5)
|
55
|
+
avm-files (~> 0.7)
|
56
|
+
eac_ruby_utils (~> 0.121)
|
57
|
+
htmlbeautifier (~> 1.4, >= 1.4.3)
|
58
|
+
|
47
59
|
PATH
|
48
60
|
remote: sub/avm-eac_wordpress_base0
|
49
61
|
specs:
|
@@ -136,13 +148,6 @@ GEM
|
|
136
148
|
avm-eac_generic_base0 (~> 0.12, >= 0.12.1)
|
137
149
|
eac_envs-http (~> 0.4, >= 0.4.1)
|
138
150
|
eac_ruby_utils (~> 0.119, >= 0.119.2)
|
139
|
-
avm-eac_webapp_base0 (0.18.3)
|
140
|
-
avm (~> 0.84, >= 0.84.2)
|
141
|
-
avm-eac_generic_base0 (~> 0.12, >= 0.12.2)
|
142
|
-
avm-eac_postgresql_base0 (~> 0.5, >= 0.5.2)
|
143
|
-
avm-eac_ubuntu_base0 (~> 0.5)
|
144
|
-
avm-files (~> 0.6, >= 0.6.2)
|
145
|
-
eac_ruby_utils (~> 0.120)
|
146
151
|
avm-files (0.7.0)
|
147
152
|
avm (~> 0.84, >= 0.84.2)
|
148
153
|
eac_cli (~> 0.40)
|
@@ -236,6 +241,7 @@ GEM
|
|
236
241
|
addressable (~> 2.8)
|
237
242
|
rchardet (~> 1.8)
|
238
243
|
hpricot (0.8.6)
|
244
|
+
htmlbeautifier (1.4.3)
|
239
245
|
i18n (1.14.1)
|
240
246
|
concurrent-ruby (~> 1.0)
|
241
247
|
json (2.7.1)
|
@@ -333,6 +339,7 @@ DEPENDENCIES
|
|
333
339
|
avm-eac_rails_base0!
|
334
340
|
avm-eac_redmine_plugin_base0!
|
335
341
|
avm-eac_ubuntu_base0!
|
342
|
+
avm-eac_webapp_base0!
|
336
343
|
avm-eac_wordpress_base0!
|
337
344
|
eac_ruby_gem_support (~> 0.10)
|
338
345
|
eac_tools!
|
data/lib/eac_tools/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
+
|
5
|
+
require 'avm/eac_webapp_base0/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'avm-eac_webapp_base0'
|
9
|
+
s.version = Avm::EacWebappBase0::VERSION
|
10
|
+
s.authors = ['Put here the authors']
|
11
|
+
s.summary = 'Put here de description.'
|
12
|
+
|
13
|
+
s.files = Dir['{lib,template}/**/*']
|
14
|
+
s.required_ruby_version = '>= 2.7'
|
15
|
+
|
16
|
+
s.add_dependency 'avm', '~> 0.86', '>= 0.86.2'
|
17
|
+
s.add_dependency 'avm-eac_generic_base0', '~> 0.12', '>= 0.12.2'
|
18
|
+
s.add_dependency 'avm-eac_postgresql_base0', '~> 0.5', '>= 0.5.3'
|
19
|
+
s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.5'
|
20
|
+
s.add_dependency 'avm-files', '~> 0.7'
|
21
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.121'
|
22
|
+
s.add_dependency 'htmlbeautifier', '~> 1.4', '>= 1.4.3'
|
23
|
+
|
24
|
+
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.10'
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module Executables
|
9
|
+
class << self
|
10
|
+
enable_simple_cache
|
11
|
+
|
12
|
+
def env
|
13
|
+
::EacRubyUtils::Envs.local
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
%w[cssbeautify-cli js-beautify tidy].each do |program|
|
19
|
+
define_method("#{program.underscore}_uncached") do
|
20
|
+
env.executable(program, '--version')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
require 'avm/eac_webapp_base0/executables'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module EacWebappBase0
|
9
|
+
module FileFormats
|
10
|
+
class Css < ::Avm::EacGenericBase0::FileFormats::Base
|
11
|
+
class FileApply
|
12
|
+
EXECUTABLE_NAME = 'cssbeautify-cli'
|
13
|
+
EXECUTABLE_CHECK_ARGS = ['--version'].freeze
|
14
|
+
EXECUTABLE_STATIC_ARGS = ['--autosemicolon', '--indent', ' ', '--openbrace',
|
15
|
+
'end-of-line', '--stdin'].freeze
|
16
|
+
|
17
|
+
common_constructor :file
|
18
|
+
|
19
|
+
def perform
|
20
|
+
on_temp_output_file do |_temp_file|
|
21
|
+
run_command
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
attr_accessor :output_file
|
28
|
+
|
29
|
+
def command
|
30
|
+
::Avm::EacWebappBase0::Executables.cssbeautify_cli.command(*EXECUTABLE_STATIC_ARGS)
|
31
|
+
end
|
32
|
+
|
33
|
+
def on_temp_output_file
|
34
|
+
::EacRubyUtils::Fs::Temp.on_file do |temp_output_file|
|
35
|
+
self.output_file = temp_output_file
|
36
|
+
yield
|
37
|
+
::FileUtils.mv(temp_output_file.to_path, file)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def run_command
|
42
|
+
command.system!(input_file: file, output_file: output_file.to_path)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module FileFormats
|
9
|
+
class Css < ::Avm::EacGenericBase0::FileFormats::Base
|
10
|
+
require_sub __FILE__
|
11
|
+
|
12
|
+
VALID_BASENAMES = %w[*.css *.scss].freeze
|
13
|
+
VALID_TYPES = [].freeze
|
14
|
+
|
15
|
+
def file_apply(file)
|
16
|
+
::Avm::EacWebappBase0::FileFormats::Css::FileApply.new(file).perform
|
17
|
+
super(file)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
require 'htmlbeautifier'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module FileFormats
|
9
|
+
class Html < ::Avm::EacGenericBase0::FileFormats::Base
|
10
|
+
VALID_BASENAMES = %w[*.html *.html.erb].freeze
|
11
|
+
VALID_TYPES = [].freeze
|
12
|
+
|
13
|
+
def file_apply(path)
|
14
|
+
input = ::File.read(path)
|
15
|
+
temppath = tempfile_path
|
16
|
+
::File.open(temppath, 'w') do |output|
|
17
|
+
beautify path, input, output
|
18
|
+
end
|
19
|
+
::FileUtils.mv(temppath, path)
|
20
|
+
super(path)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def beautify(name, input, output)
|
26
|
+
output.puts ::HtmlBeautifier.beautify(input, htmlbeautify_options)
|
27
|
+
rescue StandardError => e
|
28
|
+
raise "Error parsing #{name}: #{e}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def htmlbeautify_options
|
32
|
+
@htmlbeautify_options ||= { indent: ' ' }
|
33
|
+
end
|
34
|
+
|
35
|
+
def tempfile_path
|
36
|
+
tempfile = ::Tempfile.new
|
37
|
+
tempfile.close
|
38
|
+
tempfile.path
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
require 'avm/eac_webapp_base0/executables'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module FileFormats
|
9
|
+
class Javascript < ::Avm::EacGenericBase0::FileFormats::Base
|
10
|
+
VALID_BASENAMES = %w[*.js].freeze
|
11
|
+
VALID_TYPES = [].freeze
|
12
|
+
|
13
|
+
def internal_apply(files)
|
14
|
+
::Avm::EacWebappBase0::Executables.js_beautify.command.append(
|
15
|
+
['--indent-size=2', '--end-with-newline', '--replace', *files]
|
16
|
+
).system!
|
17
|
+
super(files)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacWebappBase0
|
7
|
+
module FileFormats
|
8
|
+
class Json < ::Avm::EacGenericBase0::FileFormats::Base
|
9
|
+
VALID_BASENAMES = %w[*.json].freeze
|
10
|
+
VALID_TYPES = [].freeze
|
11
|
+
|
12
|
+
def file_apply(file)
|
13
|
+
::File.write(file, ::JSON.pretty_generate(::JSON.parse(::File.read(file))))
|
14
|
+
end
|
15
|
+
|
16
|
+
def json_file?(file)
|
17
|
+
::JSON.parse(::File.read(file))
|
18
|
+
true
|
19
|
+
rescue JSON::ParserError
|
20
|
+
false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_webapp_base0/file_formats/css'
|
4
|
+
require 'avm/eac_webapp_base0/file_formats/html'
|
5
|
+
require 'avm/eac_webapp_base0/file_formats/javascript'
|
6
|
+
require 'avm/eac_webapp_base0/file_formats/json'
|
7
|
+
require 'avm/eac_webapp_base0/file_formats/xml'
|
8
|
+
require 'eac_ruby_utils/core_ext'
|
9
|
+
|
10
|
+
module Avm
|
11
|
+
module EacWebappBase0
|
12
|
+
module FileFormats
|
13
|
+
class Provider
|
14
|
+
ALL_NAMES = %w[css html javascript json xml].freeze
|
15
|
+
|
16
|
+
def all
|
17
|
+
@all ||= ALL_NAMES.map do |name|
|
18
|
+
::Avm::EacWebappBase0::FileFormats.const_get(name.camelize)
|
19
|
+
end.freeze
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/eac_generic_base0/file_formats/base'
|
4
|
+
require 'avm/eac_webapp_base0/executables'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module FileFormats
|
9
|
+
class Xml < ::Avm::EacGenericBase0::FileFormats::Base
|
10
|
+
VALID_BASENAMES = %w[*.svg *.xml].freeze
|
11
|
+
VALID_TYPES = ['image/svg+xml', 'xml'].freeze
|
12
|
+
|
13
|
+
def internal_apply(files)
|
14
|
+
format_command(files).system!
|
15
|
+
super(files)
|
16
|
+
end
|
17
|
+
|
18
|
+
def format_command(files)
|
19
|
+
::Avm::EacWebappBase0::Executables.tidy.command.append(
|
20
|
+
%w[-xml -modify --indent auto --indent-spaces 2 --wrap 100] + files
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'avm/entries/jobs/base'
|
5
|
+
require 'avm/eac_ubuntu_base0/apache'
|
6
|
+
require 'eac_templates/core_ext'
|
7
|
+
|
8
|
+
module Avm
|
9
|
+
module EacWebappBase0
|
10
|
+
module Instances
|
11
|
+
class ApacheBase
|
12
|
+
# @return [String]
|
13
|
+
def document_root
|
14
|
+
instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
|
19
|
+
def reload_apache
|
20
|
+
infom 'Reloading Apache...'
|
21
|
+
apache.service('reload')
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# @return [Avm::EacUbuntuBase0::Apache]
|
27
|
+
def apache_uncached
|
28
|
+
instance.platform_instance.apache
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'avm/entries/jobs/base'
|
5
|
+
require 'avm/eac_ubuntu_base0/apache'
|
6
|
+
require 'avm/eac_webapp_base0/instances/apache_base'
|
7
|
+
require 'eac_templates/core_ext'
|
8
|
+
|
9
|
+
module Avm
|
10
|
+
module EacWebappBase0
|
11
|
+
module Instances
|
12
|
+
class ApacheHost < ::Avm::EacWebappBase0::Instances::ApacheBase
|
13
|
+
APACHE_DIRECTORY_EXTRA_CONFIG_KEY = 'install.apache_directory_extra_config'
|
14
|
+
JOBS = %w[write_available_no_ssl_site enable_no_ssl_site remove_ssl_site reload_apache
|
15
|
+
run_certbot enable_ssl_site reload_apache].freeze
|
16
|
+
include ::Avm::Entries::Jobs::Base
|
17
|
+
|
18
|
+
def directory_extra_config
|
19
|
+
instance.entry(APACHE_DIRECTORY_EXTRA_CONFIG_KEY).optional_value
|
20
|
+
.if_present { |v| " #{v}\n" }
|
21
|
+
end
|
22
|
+
|
23
|
+
def no_ssl_site_content
|
24
|
+
::Avm::EacWebappBase0::Instances::ApacheHost
|
25
|
+
.template.child('no_ssl.conf')
|
26
|
+
.apply(variables_source)
|
27
|
+
end
|
28
|
+
|
29
|
+
def ssl?
|
30
|
+
options[:certbot]
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def enable_no_ssl_site
|
36
|
+
infom 'Enabling no SSL site...'
|
37
|
+
no_ssl_site.enable
|
38
|
+
end
|
39
|
+
|
40
|
+
def enable_ssl_site
|
41
|
+
return unless ssl?
|
42
|
+
|
43
|
+
infom 'Enabling SSL site...'
|
44
|
+
ssl_site.enable
|
45
|
+
end
|
46
|
+
|
47
|
+
def no_ssl_site_uncached
|
48
|
+
apache.site(instance.id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove_ssl_site
|
52
|
+
infom 'Removing SSL site...'
|
53
|
+
ssl_site.remove
|
54
|
+
end
|
55
|
+
|
56
|
+
def run_certbot
|
57
|
+
return unless ssl?
|
58
|
+
|
59
|
+
infom 'Running Certbot...'
|
60
|
+
instance.host_env.command(
|
61
|
+
'sudo', 'certbot', '--apache', '--domain', instance.read_entry('web.hostname'),
|
62
|
+
'--redirect', '--non-interactive', '--agree-tos',
|
63
|
+
'--email', instance.install_email
|
64
|
+
).system!
|
65
|
+
end
|
66
|
+
|
67
|
+
def ssl_site_uncached
|
68
|
+
apache.site("#{no_ssl_site.name}-le-ssl")
|
69
|
+
end
|
70
|
+
|
71
|
+
def write_available_no_ssl_site
|
72
|
+
infom 'Writing no SSL site conf...'
|
73
|
+
no_ssl_site.write(no_ssl_site_content)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/entries/jobs/base'
|
4
|
+
require 'avm/eac_ubuntu_base0/apache'
|
5
|
+
require 'avm/eac_webapp_base0/instances/apache_base'
|
6
|
+
require 'eac_ruby_utils/core_ext'
|
7
|
+
|
8
|
+
module Avm
|
9
|
+
module EacWebappBase0
|
10
|
+
module Instances
|
11
|
+
class ApachePath < ::Avm::EacWebappBase0::Instances::ApacheBase
|
12
|
+
JOBS = %w[write_available_conf enable_conf reload_apache].freeze
|
13
|
+
include ::Avm::Entries::Jobs::Base
|
14
|
+
|
15
|
+
def content
|
16
|
+
::Avm::EacWebappBase0::Instances::ApachePath.template.child('default.conf')
|
17
|
+
.apply(variables_source)
|
18
|
+
end
|
19
|
+
|
20
|
+
def extra_content
|
21
|
+
''
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def enable_conf
|
27
|
+
infom 'Enabling configuration...'
|
28
|
+
conf.enable
|
29
|
+
end
|
30
|
+
|
31
|
+
def conf_uncached
|
32
|
+
apache.conf(instance.id)
|
33
|
+
end
|
34
|
+
|
35
|
+
def write_available_conf
|
36
|
+
infom 'Writing available configuration...'
|
37
|
+
conf.write(content)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module EacWebappBase0
|
5
|
+
module Instances
|
6
|
+
class Base < ::Avm::Instances::Base
|
7
|
+
module Apache
|
8
|
+
common_concern
|
9
|
+
|
10
|
+
class_methods do
|
11
|
+
# @return [Class]
|
12
|
+
def apache_path_class
|
13
|
+
ancestors.lazy.map { |ancestor| apache_path_class_by_ancestor(ancestor) }
|
14
|
+
.find(&:present?) || raise("No apache patch class found for \"#{self}\"")
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
# @param ancestor [Module]
|
20
|
+
# @return [Class]
|
21
|
+
def apache_path_class_by_ancestor(ancestor)
|
22
|
+
"#{ancestor.name.deconstantize}::ApachePath".constantize
|
23
|
+
rescue ::NameError
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Class]
|
29
|
+
def apache_path_class
|
30
|
+
self.class.apache_path_class
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Avm::EacUbuntuBase0::Apache::Resource, nil]
|
34
|
+
def apache_resource
|
35
|
+
%i[conf site]
|
36
|
+
.lazy
|
37
|
+
.map { |type| platform_instance.apache.send(type, install_apache_resource_name) }
|
38
|
+
.find(&:available?)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/entries/uri_builder'
|
4
|
+
require 'avm/instances/entry_keys'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacWebappBase0
|
8
|
+
module Instances
|
9
|
+
class Base < ::Avm::Instances::Base
|
10
|
+
module Install
|
11
|
+
common_concern do
|
12
|
+
uri_components_entries_values 'install', %w[apache_resource_name]
|
13
|
+
end
|
14
|
+
|
15
|
+
def install_apache_resource_name_default_value
|
16
|
+
id
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/instances/base'
|
4
|
+
require 'avm/eac_postgresql_base0/instance_with'
|
5
|
+
require 'avm/instances/data/files_unit'
|
6
|
+
require 'avm/instances/data/package'
|
7
|
+
require 'avm/eac_webapp_base0/instances/processes/web_server'
|
8
|
+
require 'avm/eac_webapp_base0/instances/runners'
|
9
|
+
require 'avm/eac_ubuntu_base0/instances/base'
|
10
|
+
|
11
|
+
module Avm
|
12
|
+
module EacWebappBase0
|
13
|
+
module Instances
|
14
|
+
class Base < ::Avm::Instances::Base
|
15
|
+
require_sub __FILE__, include_modules: true
|
16
|
+
include ::Avm::EacPostgresqlBase0::InstanceWith
|
17
|
+
enable_simple_cache
|
18
|
+
|
19
|
+
def run_subcommand(subcommand_class, argv)
|
20
|
+
subcommand_class.create(
|
21
|
+
argv: argv,
|
22
|
+
parent: ::Avm::Instances::Base::SubcommandParent.new(self)
|
23
|
+
).run
|
24
|
+
end
|
25
|
+
|
26
|
+
def database_unit
|
27
|
+
pg_data_unit
|
28
|
+
end
|
29
|
+
|
30
|
+
# @return [Array<Avm::Instances::Process>]
|
31
|
+
def processes
|
32
|
+
super + [::Avm::EacWebappBase0::Instances::Processes::WebServer.new(self)]
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
# @return [Avm::EacUbuntuBase0::Instances::Base]
|
38
|
+
def platform_instance_uncached
|
39
|
+
::Avm::EacUbuntuBase0::Instances::Base.by_id(id)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/path_string'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module EacWebappBase0
|
7
|
+
module Instances
|
8
|
+
class Deploy
|
9
|
+
module AppendedDirectories
|
10
|
+
APPENDED_DIRECTORIES_ENTRY_KEY = 'deploy.appended_directories'
|
11
|
+
|
12
|
+
def appended_directories
|
13
|
+
appended_directories_from_instance_entry + appended_directories_from_options
|
14
|
+
end
|
15
|
+
|
16
|
+
def appended_directories_from_instance_entry
|
17
|
+
::Avm::PathString.paths(instance.read_entry_optional(APPENDED_DIRECTORIES_ENTRY_KEY))
|
18
|
+
end
|
19
|
+
|
20
|
+
def appended_directories_from_options
|
21
|
+
options[OPTION_APPENDED_DIRECTORIES] || []
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|