eac_tools 0.11.0 → 0.13.0
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/Gemfile.lock +21 -21
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm/avm.gemspec +2 -2
- data/sub/avm/lib/avm/application_stereotypes/base.rb +11 -1
- data/sub/avm/lib/avm/instances/base/auto_values/install.rb +48 -0
- data/sub/avm/lib/avm/instances/base/auto_values.rb +1 -1
- data/sub/avm/lib/avm/instances/base.rb +4 -4
- data/sub/avm/lib/avm/instances/entry_keys.rb +7 -6
- data/sub/avm/lib/avm/instances.rb +3 -2
- data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +9 -6
- data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +8 -5
- data/sub/avm/lib/avm/registry/source_generators.rb +16 -0
- data/sub/avm/lib/avm/registry.rb +2 -1
- data/sub/avm/lib/avm/scms/base.rb +2 -2
- data/sub/avm/lib/avm/source_generators/base.rb +29 -0
- data/sub/avm/lib/avm/source_generators.rb +9 -0
- data/sub/avm/lib/avm/sources/base.rb +4 -4
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm/lib/avm/with/application_stereotype.rb +35 -0
- data/sub/avm/lib/avm/with/extra_subcommands.rb +44 -0
- data/sub/avm/spec/lib/avm/instances/base_spec.rb +3 -3
- data/sub/avm/spec/lib/avm/instances/base_spec_configs_storage.yml +1 -1
- data/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +3 -3
- data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/source_generators/base.rb +13 -0
- data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +1 -1
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/Gemfile +11 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/Rakefile +8 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/assets/config/manifest.js +3 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/assets/javascripts/application.js +1 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/assets/stylesheets/application.scss +1 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/controllers/application_controller.rb +4 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/controllers/welcome_controller.rb +5 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/app/views/welcome/index.html.erb +1 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/bin/bundle +5 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/bin/rails +11 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/bin/rake +11 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/bin/yarn +11 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/application.rb +11 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/boot.rb +5 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/cable.yml +8 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/credentials.yml.enc +1 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/environment.rb +7 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/puma.rb +39 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/routes.rb +5 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config/spring.rb +8 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/config.ru +7 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/db/schema.rb +1 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/lib/ability.rb +20 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/lib/ability_mapping.rb +10 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/public/favicon.ico +0 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/code/rubocop_spec.rb +3 -0
- data/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/source_generators/base/spec/spec_helper.rb +8 -0
- data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +3 -2
- data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit.rb +1 -1
- data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +1 -1
- data/sub/avm-tools/README.textile +0 -11
- data/sub/avm-tools/avm-tools.gemspec +1 -2
- data/sub/avm-tools/lib/avm/tools/runner/source_generate.rb +45 -0
- data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
- data/sub/eac_config/eac_config.gemspec +1 -1
- data/sub/eac_config/lib/eac_config/entry_path.rb +15 -4
- data/sub/eac_config/lib/eac_config/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +5 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +67 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +68 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +2 -125
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{require_sub_spec → require_sub/base_spec}/stubbed_module_a.rb +0 -0
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{require_sub_spec → require_sub/base_spec}/stubbed_not_module.rb +0 -0
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/{require_sub_spec.rb → require_sub/base_spec.rb} +1 -1
- metadata +56 -16
- data/sub/avm/lib/avm/instances/base/auto_values/access.rb +0 -40
- data/sub/avm/lib/avm/with_application_stereotype.rb +0 -23
- data/sub/avm/lib/avm/with_dynamic_runners.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5bf2ba914845ef4487ca80e47097879d283ece113e6cbe0863a9f54920b605d7
|
|
4
|
+
data.tar.gz: b9c45a9db9dba67f8c742bf689a1b267480c40b8312ec066dfe25aabf8f66ec6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: de155498ec4b29e4391433f4fe3fb5a9509f15f92d5b4106b1e402026e7349d3887bb4b75bedf96bcb22281ba606149bd17be4ba67dad2d3bb4c741dc4f2a237
|
|
7
|
+
data.tar.gz: 0e738279dd36f46a1bc247d71fb2165ad0b5537e7050874a3705ee3b85c0b353e490535b3e74c7d6960ac17df6c0a8ab9c5f5ad371a7de7a524ad266faae4e6c
|
data/Gemfile.lock
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
eac_tools (0.
|
|
4
|
+
eac_tools (0.13.0)
|
|
5
5
|
avm-eac_generic_base0 (~> 0.4)
|
|
6
|
-
avm-eac_rails_base0 (~> 0.
|
|
7
|
-
avm-eac_rails_base1 (~> 0.4, >= 0.4.
|
|
6
|
+
avm-eac_rails_base0 (~> 0.6, >= 0.6.1)
|
|
7
|
+
avm-eac_rails_base1 (~> 0.4, >= 0.4.2)
|
|
8
8
|
avm-eac_redmine_base0 (~> 0.11)
|
|
9
9
|
avm-eac_redmine_plugin_base0 (~> 0.3)
|
|
10
10
|
avm-eac_ruby_base1 (~> 0.11)
|
|
11
|
-
avm-tools (~> 0.
|
|
12
|
-
eac_ruby_utils (~> 0.
|
|
11
|
+
avm-tools (~> 0.127)
|
|
12
|
+
eac_ruby_utils (~> 0.97)
|
|
13
13
|
|
|
14
14
|
PATH
|
|
15
15
|
remote: sub/avm-eac_generic_base0
|
|
@@ -21,17 +21,18 @@ PATH
|
|
|
21
21
|
PATH
|
|
22
22
|
remote: sub/avm-eac_rails_base0
|
|
23
23
|
specs:
|
|
24
|
-
avm-eac_rails_base0 (0.
|
|
25
|
-
avm-eac_rails_base1 (~> 0.
|
|
26
|
-
eac_ruby_utils (~> 0.
|
|
24
|
+
avm-eac_rails_base0 (0.6.1)
|
|
25
|
+
avm-eac_rails_base1 (~> 0.4, >= 0.4.2)
|
|
26
|
+
eac_ruby_utils (~> 0.97)
|
|
27
27
|
|
|
28
28
|
PATH
|
|
29
29
|
remote: sub/avm-eac_rails_base1
|
|
30
30
|
specs:
|
|
31
|
-
avm-eac_rails_base1 (0.4.
|
|
32
|
-
avm
|
|
31
|
+
avm-eac_rails_base1 (0.4.2)
|
|
32
|
+
avm (~> 0.31)
|
|
33
|
+
avm-eac_ruby_base1 (~> 0.11)
|
|
33
34
|
avm-eac_webapp_base0 (~> 0.3)
|
|
34
|
-
eac_ruby_utils (~> 0.
|
|
35
|
+
eac_ruby_utils (~> 0.97)
|
|
35
36
|
|
|
36
37
|
PATH
|
|
37
38
|
remote: sub/avm-eac_redmine_base0
|
|
@@ -64,11 +65,10 @@ PATH
|
|
|
64
65
|
PATH
|
|
65
66
|
remote: sub/avm-tools
|
|
66
67
|
specs:
|
|
67
|
-
avm-tools (0.
|
|
68
|
+
avm-tools (0.127.0)
|
|
68
69
|
aranha-parsers (~> 0.4)
|
|
69
|
-
avm (~> 0.
|
|
70
|
+
avm (~> 0.30)
|
|
70
71
|
avm-eac_asciidoctor_base0 (~> 0.3, >= 0.3.4)
|
|
71
|
-
avm-eac_rails_base0 (~> 0.3)
|
|
72
72
|
avm-eac_ruby_base1 (~> 0.8)
|
|
73
73
|
avm-eac_ubuntu_base0 (~> 0.3)
|
|
74
74
|
avm-files (~> 0.1)
|
|
@@ -82,12 +82,12 @@ PATH
|
|
|
82
82
|
PATH
|
|
83
83
|
remote: sub/avm
|
|
84
84
|
specs:
|
|
85
|
-
avm (0.
|
|
85
|
+
avm (0.31.0)
|
|
86
86
|
eac_cli (~> 0.27, >= 0.27.6)
|
|
87
|
-
eac_config (~> 0.
|
|
87
|
+
eac_config (~> 0.10)
|
|
88
88
|
eac_docker (~> 0.3)
|
|
89
89
|
eac_git (~> 0.6)
|
|
90
|
-
eac_ruby_utils (~> 0.
|
|
90
|
+
eac_ruby_utils (~> 0.97)
|
|
91
91
|
eac_templates (~> 0.1, >= 0.1.1)
|
|
92
92
|
filesize (~> 0.2)
|
|
93
93
|
htmlbeautifier (~> 1.3, >= 1.3.1)
|
|
@@ -104,9 +104,9 @@ PATH
|
|
|
104
104
|
PATH
|
|
105
105
|
remote: sub/eac_config
|
|
106
106
|
specs:
|
|
107
|
-
eac_config (0.
|
|
107
|
+
eac_config (0.10.0)
|
|
108
108
|
addressable
|
|
109
|
-
eac_ruby_utils (~> 0.
|
|
109
|
+
eac_ruby_utils (~> 0.97)
|
|
110
110
|
|
|
111
111
|
PATH
|
|
112
112
|
remote: sub/eac_docker
|
|
@@ -135,7 +135,7 @@ PATH
|
|
|
135
135
|
PATH
|
|
136
136
|
remote: sub/eac_ruby_utils
|
|
137
137
|
specs:
|
|
138
|
-
eac_ruby_utils (0.
|
|
138
|
+
eac_ruby_utils (0.97.0)
|
|
139
139
|
activesupport (>= 4, < 7)
|
|
140
140
|
addressable (~> 2.6)
|
|
141
141
|
bundler
|
|
@@ -269,7 +269,7 @@ GEM
|
|
|
269
269
|
rainbow (3.1.1)
|
|
270
270
|
rchardet (1.8.0)
|
|
271
271
|
rexml (3.2.5)
|
|
272
|
-
rouge (3.
|
|
272
|
+
rouge (3.30.0)
|
|
273
273
|
rspec (3.11.0)
|
|
274
274
|
rspec-core (~> 3.11.0)
|
|
275
275
|
rspec-expectations (~> 3.11.0)
|
data/lib/eac_tools/version.rb
CHANGED
data/sub/avm/avm.gemspec
CHANGED
|
@@ -13,10 +13,10 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
|
14
14
|
|
|
15
15
|
s.add_dependency 'eac_cli', '~> 0.27', '>= 0.27.6'
|
|
16
|
-
s.add_dependency 'eac_config', '~> 0.
|
|
16
|
+
s.add_dependency 'eac_config', '~> 0.10'
|
|
17
17
|
s.add_dependency 'eac_docker', '~> 0.3'
|
|
18
18
|
s.add_dependency 'eac_git', '~> 0.6'
|
|
19
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
|
19
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.97'
|
|
20
20
|
s.add_dependency 'eac_templates', '~> 0.1', '>= 0.1.1'
|
|
21
21
|
s.add_dependency 'filesize', '~> 0.2'
|
|
22
22
|
s.add_dependency 'htmlbeautifier', '~> 1.3', '>= 1.3.1'
|
|
@@ -5,7 +5,11 @@ require 'eac_ruby_utils/core_ext'
|
|
|
5
5
|
module Avm
|
|
6
6
|
module ApplicationStereotypes
|
|
7
7
|
class Base
|
|
8
|
-
|
|
8
|
+
enable_listable
|
|
9
|
+
lists.add_symbol :resource, :instance, :source, :source_generator
|
|
10
|
+
common_constructor :namespace_module, :resources do
|
|
11
|
+
self.resources = self.class.lists.resource.hash_keys_validate!(resources)
|
|
12
|
+
end
|
|
9
13
|
|
|
10
14
|
# @return [String]
|
|
11
15
|
def name
|
|
@@ -16,6 +20,12 @@ module Avm
|
|
|
16
20
|
def to_s
|
|
17
21
|
name
|
|
18
22
|
end
|
|
23
|
+
|
|
24
|
+
lists.resource.each_value do |resource|
|
|
25
|
+
define_method "#{resource}_class" do
|
|
26
|
+
resources[resource]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
19
29
|
end
|
|
20
30
|
end
|
|
21
31
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/instances/entry_keys'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module Instances
|
|
7
|
+
class Base
|
|
8
|
+
module AutoValues
|
|
9
|
+
module Install
|
|
10
|
+
def auto_access
|
|
11
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_URL).present? ? 'ssh' : 'local'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def auto_install_hostname
|
|
15
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
16
|
+
::Avm::Instances::EntryKeys::INSTALL_HOSTNAME)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def auto_install_port
|
|
20
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
21
|
+
::Avm::Instances::EntryKeys::INSTALL_PORT) || 22
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def auto_install_username
|
|
25
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
26
|
+
::Avm::Instances::EntryKeys::INSTALL_USERNAME)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def auto_install_url
|
|
30
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
31
|
+
::Avm::Instances::EntryKeys::INSTALL_URL) ||
|
|
32
|
+
auto_install_url_by_parts
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def auto_install_url_by_parts
|
|
36
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_HOSTNAME).if_present do |a|
|
|
37
|
+
a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_USERNAME)
|
|
38
|
+
.if_present(a) { |v| "#{v}@#{a}" }
|
|
39
|
+
a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_PORT)
|
|
40
|
+
.if_present(a) { |v| "#{a}:#{v}" }
|
|
41
|
+
"ssh://#{a}"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -10,7 +10,7 @@ module Avm
|
|
|
10
10
|
extend ::ActiveSupport::Concern
|
|
11
11
|
|
|
12
12
|
included do
|
|
13
|
-
%w[
|
|
13
|
+
%w[Admin Data Database Filesystem Install Mailer Ruby Source System Web]
|
|
14
14
|
.each do |class_name|
|
|
15
15
|
include const_get(class_name)
|
|
16
16
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'avm/
|
|
4
|
-
require 'avm/
|
|
3
|
+
require 'avm/with/application_stereotype'
|
|
4
|
+
require 'avm/with/extra_subcommands'
|
|
5
5
|
require 'eac_ruby_utils/require_sub'
|
|
6
6
|
require 'eac_ruby_utils/simple_cache'
|
|
7
7
|
require 'avm/instances/entries'
|
|
@@ -14,8 +14,8 @@ module Avm
|
|
|
14
14
|
enable_simple_cache
|
|
15
15
|
require_sub __FILE__, include_modules: true
|
|
16
16
|
include ::Avm::Instances::Entries
|
|
17
|
-
include ::Avm::
|
|
18
|
-
include ::Avm::
|
|
17
|
+
include ::Avm::With::ExtraSubcommands
|
|
18
|
+
include ::Avm::With::ApplicationStereotype
|
|
19
19
|
|
|
20
20
|
lists.add_string :access, :local, :ssh
|
|
21
21
|
|
|
@@ -5,6 +5,8 @@ require 'eac_ruby_utils/core_ext'
|
|
|
5
5
|
module Avm
|
|
6
6
|
module Instances
|
|
7
7
|
module EntryKeys
|
|
8
|
+
URI_FIELDS = %i[fragment hostname password path port query scheme url username].freeze
|
|
9
|
+
|
|
8
10
|
class << self
|
|
9
11
|
def all
|
|
10
12
|
all_keys.to_a
|
|
@@ -43,17 +45,16 @@ module Avm
|
|
|
43
45
|
|
|
44
46
|
{
|
|
45
47
|
'' => %w[data_fs_path fs_path host_id name source_instance_id],
|
|
46
|
-
admin: %w[
|
|
47
|
-
database: %w[id
|
|
48
|
+
admin: URI_FIELDS + %w[api_key],
|
|
49
|
+
database: URI_FIELDS + %w[id limit name system timeout extra],
|
|
48
50
|
docker: %w[registry],
|
|
49
51
|
fs: %w[url],
|
|
52
|
+
install: URI_FIELDS,
|
|
50
53
|
mailer: {
|
|
51
54
|
'' => %w[id from reply_to],
|
|
52
|
-
smtp: %w[address
|
|
53
|
-
starttls_auto tls]
|
|
55
|
+
smtp: URI_FIELDS + %w[address domain authentication openssl_verify_mode starttls_auto tls]
|
|
54
56
|
},
|
|
55
|
-
|
|
56
|
-
web: %w[authority hostname path port scheme url userinfo]
|
|
57
|
+
web: URI_FIELDS + %w[authority userinfo]
|
|
57
58
|
}.each { |prefix, suffixes| keys_consts_set(prefix, suffixes) }
|
|
58
59
|
end
|
|
59
60
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'avm/application_stereotypes/base'
|
|
3
4
|
require 'avm/registry/application_stereotypes/stereotype_builder'
|
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
|
5
6
|
|
|
@@ -13,8 +14,7 @@ module Avm
|
|
|
13
14
|
|
|
14
15
|
def result
|
|
15
16
|
reset_buffer
|
|
16
|
-
|
|
17
|
-
read_sources_registry
|
|
17
|
+
read_registries
|
|
18
18
|
buffer.values.map(&:build)
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -29,12 +29,15 @@ module Avm
|
|
|
29
29
|
buffer[object.stereotype_namespace_module].add_object(type, object)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
def
|
|
33
|
-
::Avm::
|
|
32
|
+
def read_registries
|
|
33
|
+
::Avm::ApplicationStereotypes::Base.lists.resource.each_value do |resource|
|
|
34
|
+
read_registry(resource)
|
|
35
|
+
end
|
|
34
36
|
end
|
|
35
37
|
|
|
36
|
-
def
|
|
37
|
-
::Avm::Registry.
|
|
38
|
+
def read_registry(resource)
|
|
39
|
+
::Avm::Registry.send(resource.to_s.pluralize).available
|
|
40
|
+
.each { |obj| read_object(resource, obj) }
|
|
38
41
|
end
|
|
39
42
|
|
|
40
43
|
def reset_buffer
|
|
@@ -10,20 +10,23 @@ module Avm
|
|
|
10
10
|
common_constructor :namespace_module
|
|
11
11
|
|
|
12
12
|
def add_object(type, object)
|
|
13
|
-
|
|
14
|
-
raise "#{attr_method} is already present" if
|
|
13
|
+
type = type.to_sym
|
|
14
|
+
raise "#{attr_method} is already present" if resources.key?(type)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
resources[::Avm::ApplicationStereotypes::Base.lists.resource.value_validate!(type)] =
|
|
17
|
+
object
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
# @return [Avm::ApplicationStereotypes::Base]
|
|
20
21
|
def build
|
|
21
|
-
::Avm::ApplicationStereotypes::Base.new(namespace_module,
|
|
22
|
+
::Avm::ApplicationStereotypes::Base.new(namespace_module, resources)
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
private
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
def resources
|
|
28
|
+
@resources ||= {}
|
|
29
|
+
end
|
|
27
30
|
end
|
|
28
31
|
end
|
|
29
32
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/instances/base'
|
|
4
|
+
require 'avm/registry/from_gems'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module Registry
|
|
8
|
+
class SourceGenerators < ::Avm::Registry::FromGems
|
|
9
|
+
# @return [Avm::Instances::Base, nil]
|
|
10
|
+
def class_detect(klass, detect_args)
|
|
11
|
+
stereotype_name, target_path = detect_args
|
|
12
|
+
klass.application_stereotype.name == stereotype_name ? klass.new(target_path) : nil
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/sub/avm/lib/avm/registry.rb
CHANGED
|
@@ -7,7 +7,8 @@ module Avm
|
|
|
7
7
|
module Registry
|
|
8
8
|
require_sub __FILE__
|
|
9
9
|
enable_listable
|
|
10
|
-
lists.add_symbol :category, :application_stereotypes, :instances, :runners, :scms,
|
|
10
|
+
lists.add_symbol :category, :application_stereotypes, :instances, :runners, :scms,
|
|
11
|
+
:source_generators, :sources
|
|
11
12
|
|
|
12
13
|
WITH_PATH = [CATEGORY_SCMS, CATEGORY_SOURCES].freeze
|
|
13
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'avm/
|
|
3
|
+
require 'avm/with/application_stereotype'
|
|
4
4
|
require 'eac_ruby_utils/core_ext'
|
|
5
5
|
|
|
6
6
|
module Avm
|
|
@@ -8,7 +8,7 @@ module Avm
|
|
|
8
8
|
class Base
|
|
9
9
|
enable_abstract_methods
|
|
10
10
|
enable_simple_cache
|
|
11
|
-
include ::Avm::
|
|
11
|
+
include ::Avm::With::ApplicationStereotype
|
|
12
12
|
abstract_methods :update, :valid?
|
|
13
13
|
common_constructor :path do
|
|
14
14
|
self.path = path.to_pathname
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/with/application_stereotype'
|
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module SourceGenerators
|
|
8
|
+
class Base
|
|
9
|
+
include ::Avm::With::ApplicationStereotype
|
|
10
|
+
common_constructor :target_path do
|
|
11
|
+
self.target_path = target_path.to_pathname
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def perform
|
|
15
|
+
assert_clear_directory
|
|
16
|
+
apply_template
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def assert_clear_directory
|
|
20
|
+
target_path.mkpath
|
|
21
|
+
raise "\"#{target_path}\" is not empty" if target_path.children.any?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def apply_template
|
|
25
|
+
template.apply(self, target_path)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require 'avm/registry'
|
|
4
4
|
require 'avm/scms/null'
|
|
5
|
-
require 'avm/
|
|
6
|
-
require 'avm/
|
|
5
|
+
require 'avm/with/application_stereotype'
|
|
6
|
+
require 'avm/with/extra_subcommands'
|
|
7
7
|
require 'eac_git'
|
|
8
8
|
require 'eac_ruby_utils/core_ext'
|
|
9
9
|
|
|
@@ -11,8 +11,8 @@ module Avm
|
|
|
11
11
|
module Sources
|
|
12
12
|
class Base
|
|
13
13
|
require_sub __FILE__, include_modules: true
|
|
14
|
-
include ::Avm::
|
|
15
|
-
include ::Avm::
|
|
14
|
+
include ::Avm::With::ApplicationStereotype
|
|
15
|
+
include ::Avm::With::ExtraSubcommands
|
|
16
16
|
compare_by :path
|
|
17
17
|
enable_abstract_methods
|
|
18
18
|
enable_simple_cache
|
data/sub/avm/lib/avm/version.rb
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
|
|
5
|
+
module Avm
|
|
6
|
+
module With
|
|
7
|
+
module ApplicationStereotype
|
|
8
|
+
common_concern do
|
|
9
|
+
include ClassMethods
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module ClassMethods
|
|
13
|
+
# @return [Avm::ApplicationStereotype::Base]
|
|
14
|
+
def application_stereotype
|
|
15
|
+
@application_stereotype ||=
|
|
16
|
+
::Avm::Registry.application_stereotypes.detect(application_stereotype_name)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [String]
|
|
20
|
+
def application_stereotype_name
|
|
21
|
+
stereotype_namespace_module.name.demodulize
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @return [Module]
|
|
25
|
+
def stereotype_namespace_module
|
|
26
|
+
module_parent.module_parent
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def stereotype_namespace_module
|
|
31
|
+
self.class.stereotype_namespace_module
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_cli/runner_with/subcommands'
|
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module With
|
|
8
|
+
module ExtraSubcommands
|
|
9
|
+
# @return [Hash<String, EacCli::Runner>]
|
|
10
|
+
def extra_available_subcommands
|
|
11
|
+
extra_available_subcommands_from_runners_module
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# @return [Hash<String, EacCli::Runner>]
|
|
15
|
+
def extra_available_subcommands_from_runners_module
|
|
16
|
+
self.class.ancestors.reverse.inject({}) do |a, e|
|
|
17
|
+
a.merge(RunnersFromModule.new(e).result)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class RunnersFromModule
|
|
22
|
+
enable_simple_cache
|
|
23
|
+
common_constructor :the_module
|
|
24
|
+
|
|
25
|
+
# @return [Hash<String, EacCli::Runner>]
|
|
26
|
+
def result
|
|
27
|
+
return {} if runners_module.blank?
|
|
28
|
+
|
|
29
|
+
::EacCli::RunnerWith::Subcommands.subcommands_from_module(runners_module)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def runners_module_uncached
|
|
33
|
+
return nil if the_module.module_parent.blank?
|
|
34
|
+
|
|
35
|
+
begin
|
|
36
|
+
the_module.module_parent.const_get('Runners')
|
|
37
|
+
rescue ::NameError
|
|
38
|
+
nil
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -23,9 +23,9 @@ RSpec.describe ::Avm::Instances::Base do
|
|
|
23
23
|
::Avm::Instances::EntryKeys::DATABASE_PASSWORD => 'pass1',
|
|
24
24
|
::Avm::Instances::EntryKeys::DATABASE_HOSTNAME => 'database.net',
|
|
25
25
|
::Avm::Instances::EntryKeys::DATABASE_PORT => 5432,
|
|
26
|
-
::Avm::Instances::EntryKeys::
|
|
27
|
-
::Avm::Instances::EntryKeys::
|
|
28
|
-
::Avm::Instances::EntryKeys::
|
|
26
|
+
::Avm::Instances::EntryKeys::INSTALL_HOSTNAME => 'myhost.com',
|
|
27
|
+
::Avm::Instances::EntryKeys::INSTALL_USERNAME => 'myuser',
|
|
28
|
+
::Avm::Instances::EntryKeys::INSTALL_URL => 'ssh://otheruser@otherhost.com'
|
|
29
29
|
},
|
|
30
30
|
'app_2' => {
|
|
31
31
|
::Avm::Instances::EntryKeys::DATABASE_HOSTNAME => '127.0.0.1',
|
|
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
|
|
13
13
|
s.files = Dir['{lib,template}/**/*']
|
|
14
14
|
|
|
15
|
-
s.add_dependency 'avm-eac_rails_base1', '~> 0.
|
|
16
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
|
15
|
+
s.add_dependency 'avm-eac_rails_base1', '~> 0.4', '>= 0.4.2'
|
|
16
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.97'
|
|
17
17
|
|
|
18
|
-
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.
|
|
18
|
+
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
|
|
19
19
|
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
|
|
5
|
+
gem 'eac_rails_base0'
|
|
6
|
+
gem 'eac_rails_gem_support', group: :development
|
|
7
|
+
|
|
8
|
+
# Local gems
|
|
9
|
+
::Dir["#{__dir__}/{sub/gems,engines}/*/*.gemspec"].each do |file|
|
|
10
|
+
gem ::File.basename(::File.dirname(file)), path: ::File.dirname(file)
|
|
11
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
4
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
5
|
+
|
|
6
|
+
require_relative 'config/application'
|
|
7
|
+
|
|
8
|
+
Rails.application.load_tasks
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//= require eac_rails_base0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "eac_rails_base0";
|