avm-tools 0.74.0 → 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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/eac_rails_base0/instance.rb +2 -5
  3. data/lib/avm/{rails/runners.rb → eac_rails_base1.rb} +2 -4
  4. data/lib/avm/{rails → eac_rails_base1}/instance.rb +8 -3
  5. data/lib/avm/eac_rails_base1/runner.rb +12 -0
  6. data/lib/avm/eac_rails_base1/runner/bundle.rb +28 -0
  7. data/lib/avm/eac_rails_base1/runner/code_runner.rb +28 -0
  8. data/lib/avm/eac_rails_base1/runner_with/bundle.rb +57 -0
  9. data/lib/avm/eac_redmine_base0/instance.rb +2 -4
  10. data/lib/avm/{stereotypes/eac_ubuntu_base0.rb → eac_ubuntu_base0.rb} +1 -3
  11. data/lib/avm/eac_webapp_base0/instance.rb +2 -2
  12. data/lib/avm/eac_webapp_base0/runner.rb +12 -0
  13. data/lib/avm/eac_webapp_base0/runner/apache_host.rb +2 -3
  14. data/lib/avm/eac_webapp_base0/runner/data.rb +1 -1
  15. data/lib/avm/eac_webapp_base0/runner/data/dump.rb +1 -1
  16. data/lib/avm/eac_webapp_base0/runner/data/load.rb +1 -1
  17. data/lib/avm/eac_webapp_base0/runner/deploy.rb +3 -16
  18. data/lib/avm/eac_wordpress_base0.rb +9 -0
  19. data/lib/avm/eac_wordpress_base0/apache_host.rb +25 -0
  20. data/lib/avm/eac_wordpress_base0/deploy.rb +10 -0
  21. data/lib/avm/eac_wordpress_base0/instance.rb +24 -0
  22. data/lib/avm/instances/runner.rb +40 -0
  23. data/lib/avm/{stereotypes/postgresql.rb → postgresql.rb} +1 -3
  24. data/lib/avm/postgresql/instance.rb +63 -0
  25. data/lib/avm/postgresql/instance/data_unit.rb +39 -0
  26. data/lib/avm/postgresql/instance_with.rb +18 -0
  27. data/lib/avm/tools/runner.rb +3 -3
  28. data/lib/avm/tools/runner/eac_rails_base0.rb +5 -18
  29. data/lib/avm/tools/runner/eac_rails_base0/apache_path.rb +1 -1
  30. data/lib/avm/tools/runner/eac_rails_base0/bundle.rb +3 -3
  31. data/lib/avm/tools/runner/eac_rails_base0/rails_server.rb +6 -12
  32. data/lib/avm/tools/runner/eac_rails_base0/runner.rb +3 -3
  33. data/lib/avm/tools/runner/eac_redmine_base0.rb +5 -23
  34. data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +1 -1
  35. data/lib/avm/tools/runner/eac_redmine_base0/docker.rb +1 -1
  36. data/lib/avm/tools/runner/eac_redmine_base0/project_rename.rb +3 -3
  37. data/lib/avm/tools/runner/eac_wordpress_base0.rb +5 -24
  38. data/lib/avm/tools/version.rb +1 -1
  39. metadata +19 -26
  40. data/lib/avm/rails/runners/bundle.rb +0 -35
  41. data/lib/avm/rails/runners/runner.rb +0 -48
  42. data/lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb +0 -27
  43. data/lib/avm/stereotypes/eac_wordpress_base0/deploy.rb +0 -12
  44. data/lib/avm/stereotypes/eac_wordpress_base0/instance.rb +0 -26
  45. data/lib/avm/stereotypes/postgresql/instance.rb +0 -65
  46. data/lib/avm/stereotypes/postgresql/instance/data_unit.rb +0 -41
  47. data/lib/avm/stereotypes/postgresql/instance_with.rb +0 -20
  48. data/lib/avm/stereotypes/rails.rb +0 -11
  49. data/lib/avm/tools/runner/eac_rails_base0/apache_host.rb +0 -16
  50. data/lib/avm/tools/runner/eac_rails_base0/data.rb +0 -15
  51. data/lib/avm/tools/runner/eac_rails_base0/deploy.rb +0 -15
  52. data/lib/avm/tools/runner/eac_redmine_base0/bundle.rb +0 -14
  53. data/lib/avm/tools/runner/eac_redmine_base0/data.rb +0 -27
  54. data/lib/avm/tools/runner/eac_redmine_base0/data/dump.rb +0 -16
  55. data/lib/avm/tools/runner/eac_redmine_base0/deploy.rb +0 -15
  56. data/lib/avm/tools/runner/eac_redmine_base0/runner.rb +0 -14
  57. data/lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb +0 -17
  58. data/lib/avm/tools/runner/eac_wordpress_base0/data.rb +0 -15
  59. data/lib/avm/tools/runner/eac_wordpress_base0/deploy.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4460b770d82c88ec42b81c1fa27af44d87957e92dcb46c32721a72ce64f3dc7
4
- data.tar.gz: 4f79e81ef512e596af26e0fd18c13582518778233042ee05a1d846f6afd405a6
3
+ metadata.gz: 86b1ee08028ac161c73a2069542d961e11585fd4eee8673307cb5f3912e0c215
4
+ data.tar.gz: 438fccaf469c7843762e381a853514ff60fb466bc202e628188eb8a512982129
5
5
  SHA512:
6
- metadata.gz: c2520c8c2b7a9805ddd0a856b1ed8c9ec019d71abd6023bdb69bc4e5ab27ba7c3cfc4e7eb3b02c9051b9dca97e2196e51455843344d305fce1a466ba89bce7d7
7
- data.tar.gz: 707b05197a270bd6442994390347713770505105ad1aeb32e6220f96571e184c78dd4ded315d9a993cbe45d0bd28a3e6b09dc708bd3fa39af291fb0df5f6b94f
6
+ metadata.gz: adfbd30ba8bac66dbb87a165d1839a1163b0679f582e326ae888fc6f773d9eeaa67d8b7047d9a0f2ec16cf98dd815ddccf2097c2003743a9fee5b7a49e67a769
7
+ data.tar.gz: deca6800842fd5dcebc5748ea4b4fa0909ff3e6bb7c927c5506d01b6f14af7588d2527f0c8c6636c11783b866dadbb65d8c59715198648eac7a9964ae2fec4a4
@@ -1,13 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_webapp_base0/instance'
4
- require 'avm/rails/instance'
3
+ require 'avm/eac_rails_base1/instance'
5
4
 
6
5
  module Avm
7
6
  module EacRailsBase0
8
- class Instance < ::Avm::EacWebappBase0::Instance
9
- include ::Avm::Rails::Instance
10
-
7
+ class Instance < ::Avm::EacRailsBase1::Instance
11
8
  FILES_UNITS = { uploads: 'public/uploads' }.freeze
12
9
  end
13
10
  end
@@ -3,9 +3,7 @@
3
3
  require 'eac_ruby_utils/core_ext'
4
4
 
5
5
  module Avm
6
- module Rails
7
- module Runners
8
- require_sub __FILE__
9
- end
6
+ module EacRailsBase1
7
+ require_sub __FILE__
10
8
  end
11
9
  end
@@ -1,10 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/eac_webapp_base0/instance'
4
+ require 'eac_ruby_gems_utils/gem'
5
+
3
6
  module Avm
4
- module Rails
5
- module Instance
7
+ module EacRailsBase1
8
+ class Instance < ::Avm::EacWebappBase0::Instance
9
+ DEFAULT_RAILS_ENVIRONMENT = 'production'
10
+
6
11
  def bundle(*args)
7
- the_gem.bundle(*args).chdir_root.envvar('RAILS_ENV', 'production')
12
+ the_gem.bundle(*args).chdir_root.envvar('RAILS_ENV', DEFAULT_RAILS_ENVIRONMENT)
8
13
  end
9
14
 
10
15
  def rake(*args)
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/runner'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRailsBase1
8
+ class Runner < ::Avm::EacWebappBase0::Runner
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/runner_with/bundle'
4
+ require 'eac_cli/core_ext'
5
+ require 'eac_ruby_utils/console/docopt_runner'
6
+ require 'shellwords'
7
+
8
+ module Avm
9
+ module EacRailsBase1
10
+ class Runner < ::Avm::EacWebappBase0::Runner
11
+ class Bundle < ::EacRubyUtils::Console::DocoptRunner
12
+ runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle
13
+ runner_definition do
14
+ desc 'Runs "bundle ...".'
15
+ pos_arg :'bundle-args', repeat: true, optional: true
16
+ end
17
+
18
+ def run
19
+ bundle_run
20
+ end
21
+
22
+ def bundle_args
23
+ options.fetch('<bundle-args>').reject { |arg| arg == '--' }
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/runner_with/bundle'
4
+ require 'eac_cli/core_ext'
5
+ require 'eac_ruby_utils/console/docopt_runner'
6
+
7
+ module Avm
8
+ module EacRailsBase1
9
+ class Runner < ::Avm::EacWebappBase0::Runner
10
+ class CodeRunner < ::EacRubyUtils::Console::DocoptRunner
11
+ runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle
12
+ runner_definition do
13
+ desc 'Runs a Ruby code with "rails runner".'
14
+ pos_arg :code
15
+ end
16
+
17
+ def run
18
+ infov 'Environment', context(:instance).host_env
19
+ bundle_run
20
+ end
21
+
22
+ def bundle_args
23
+ %w[exec rails runner] + [options.fetch('<code>')]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/instance'
4
+ require 'eac_cli/runner'
5
+
6
+ module Avm
7
+ module EacRailsBase1
8
+ module RunnerWith
9
+ module Bundle
10
+ DEFAULT_RAILS_ENVIRONMENT_CONSTANT = 'DEFAULT_RAILS_ENVIRONMENT'
11
+
12
+ common_concern do
13
+ include ::EacCli::Runner
14
+
15
+ runner_definition do
16
+ arg_opt '-e', '--environment', 'Specifies the environment for the runner to operate' \
17
+ ' (test/development/production). Default: "development".'
18
+ end
19
+ end
20
+
21
+ module ClassMethods
22
+ def default_rails_environment
23
+ const_get(DEFAULT_RAILS_ENVIRONMENT_CONSTANT)
24
+ rescue ::NameError
25
+ ::Avm::EacRailsBase1::Instance::DEFAULT_RAILS_ENVIRONMENT
26
+ end
27
+ end
28
+
29
+ def bundle_command
30
+ rails_instance.bundle(*bundle_args).envvar('RAILS_ENV', rails_environment)
31
+ end
32
+
33
+ def bundle_run
34
+ infov 'Bundle arguments', ::Shellwords.join(bundle_args)
35
+ infov 'Rails environment', rails_environment
36
+ bundle_command.system!
37
+ end
38
+
39
+ def default_rails_environment
40
+ self.class.default_rails_environment
41
+ end
42
+
43
+ def rails_instance
44
+ if respond_to?(:runner_context)
45
+ runner_context.call(:instance)
46
+ else
47
+ context(:instance)
48
+ end
49
+ end
50
+
51
+ def rails_environment
52
+ parsed.environment.presence || default_rails_environment
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -3,13 +3,11 @@
3
3
  require 'avm/eac_redmine_base0/data_unit'
4
4
  require 'avm/eac_ubuntu_base0/docker_image'
5
5
  require 'avm/eac_webapp_base0/instance'
6
- require 'avm/rails/instance'
6
+ require 'avm/eac_rails_base1/instance'
7
7
 
8
8
  module Avm
9
9
  module EacRedmineBase0
10
- class Instance < ::Avm::EacWebappBase0::Instance
11
- include ::Avm::Rails::Instance
12
-
10
+ class Instance < ::Avm::EacRailsBase1::Instance
13
11
  FILES_UNITS = { files: 'files' }.freeze
14
12
 
15
13
  def docker_image_class
@@ -4,8 +4,6 @@ require 'eac_ruby_utils/require_sub'
4
4
  ::EacRubyUtils.require_sub(__FILE__)
5
5
 
6
6
  module Avm
7
- module Stereotypes
8
- module EacUbuntuBase0
9
- end
7
+ module EacUbuntuBase0
10
8
  end
11
9
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/instances/base'
4
- require 'avm/stereotypes/postgresql/instance_with'
4
+ require 'avm/postgresql/instance_with'
5
5
  require 'avm/data/instance/files_unit'
6
6
  require 'avm/data/instance/package'
7
7
  require 'avm/eac_webapp_base0/deploy/file_unit'
@@ -9,7 +9,7 @@ require 'avm/eac_webapp_base0/deploy/file_unit'
9
9
  module Avm
10
10
  module EacWebappBase0
11
11
  class Instance < ::Avm::Instances::Base
12
- include ::Avm::Stereotypes::Postgresql::InstanceWith
12
+ include ::Avm::Postgresql::InstanceWith
13
13
 
14
14
  def stereotype_name
15
15
  self.class.name.desconstantize.demodulize
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/runner'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacWebappBase0
8
+ class Runner < ::Avm::Instances::Runner
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
@@ -5,13 +5,12 @@ require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avm
7
7
  module EacWebappBase0
8
- module Runner
8
+ class Runner < ::Avm::Instances::Runner
9
9
  class ApacheHost < ::EacRubyUtils::Console::DocoptRunner
10
10
  include ::EacCli::DefaultRunner
11
11
 
12
- stereotype_name = name.deconstantize.demodulize
13
12
  runner_definition do
14
- desc "Configure Apache virtual host for #{stereotype_name} instance."
13
+ desc 'Configure Apache virtual host for instance.'
15
14
  bool_opt '-c', '--certbot', 'Install certbot.'
16
15
  end
17
16
 
@@ -5,7 +5,7 @@ require 'eac_ruby_utils/require_sub'
5
5
 
6
6
  module Avm
7
7
  module EacWebappBase0
8
- module Runner
8
+ class Runner < ::Avm::Instances::Runner
9
9
  class Data < ::EacRubyUtils::Console::DocoptRunner
10
10
  ::EacRubyUtils.require_sub(__FILE__)
11
11
 
@@ -7,7 +7,7 @@ require 'avm/data/package/dump'
7
7
 
8
8
  module Avm
9
9
  module EacWebappBase0
10
- module Runner
10
+ class Runner < ::Avm::Instances::Runner
11
11
  class Data < ::EacRubyUtils::Console::DocoptRunner
12
12
  class Dump < ::EacRubyUtils::Console::DocoptRunner
13
13
  include ::EacRubyUtils::SimpleCache
@@ -6,7 +6,7 @@ require 'eac_ruby_utils/simple_cache'
6
6
 
7
7
  module Avm
8
8
  module EacWebappBase0
9
- module Runner
9
+ class Runner < ::Avm::Instances::Runner
10
10
  class Data < ::EacRubyUtils::Console::DocoptRunner
11
11
  class Load < ::EacRubyUtils::Console::DocoptRunner
12
12
  include ::EacRubyUtils::SimpleCache
@@ -6,12 +6,12 @@ require 'eac_ruby_utils/console/speaker'
6
6
 
7
7
  module Avm
8
8
  module EacWebappBase0
9
- module Runner
9
+ class Runner < ::Avm::Instances::Runner
10
10
  class Deploy < ::EacRubyUtils::Console::DocoptRunner
11
11
  include ::EacRubyUtils::Console::Speaker
12
12
 
13
13
  DOC = <<~DOCOPT
14
- Deploy for %%STEREOTYPE_NAME%% instance.
14
+ Deploy for instance.
15
15
 
16
16
  Usage:
17
17
  __PROGRAM__ [options]
@@ -22,22 +22,9 @@ module Avm
22
22
  -r --reference=<git-reference> Git reference to deploy.
23
23
  -a --append-dirs=<append-dirs> Append directories to deploy (List separated by ":").
24
24
  DOCOPT
25
- def initialize(settings = {})
26
- super settings.merge(doc: DOC.gsub('%%STEREOTYPE_NAME%%', stereotype_name))
27
- end
28
25
 
29
26
  def deploy_class
30
- stereotype_module.const_get('Deploy')
31
- end
32
-
33
- def stereotype_module
34
- ::Avm::Stereotypes.const_get(stereotype_name)
35
- rescue ::NameError
36
- ::Avm.const_get(stereotype_name)
37
- end
38
-
39
- def stereotype_name
40
- self.class.name.deconstantize.demodulize
27
+ context(:stereotype_module).const_get('Deploy')
41
28
  end
42
29
 
43
30
  def run
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWordpressBase0
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/apache_host'
4
+
5
+ module Avm
6
+ module EacWordpressBase0
7
+ class ApacheHost < ::Avm::EacWebappBase0::ApacheHost
8
+ def document_root
9
+ instance.read_entry(::Avm::Instances::EntryKeys::FS_PATH)
10
+ end
11
+
12
+ def extra_content
13
+ "AssignUserID #{system_user} #{system_group}"
14
+ end
15
+
16
+ def system_user
17
+ instance.read_entry('system.username')
18
+ end
19
+
20
+ def system_group
21
+ instance.read_entry('system.groupname')
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/deploy'
4
+
5
+ module Avm
6
+ module EacWordpressBase0
7
+ class Deploy < ::Avm::EacWebappBase0::Deploy
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/entry_keys'
4
+ require 'avm/eac_webapp_base0/instance'
5
+
6
+ module Avm
7
+ module EacWordpressBase0
8
+ class Instance < ::Avm::EacWebappBase0::Instance
9
+ FILES_UNITS = { uploads: 'wp-content/uploads', themes: 'wp-content/themes' }.freeze
10
+
11
+ def database_unit
12
+ web_url = read_entry(::Avm::Instances::EntryKeys::WEB_URL)
13
+ super.after_load do
14
+ info 'Fixing web addresses...'
15
+ run_sql(<<~SQL)
16
+ update wp_options
17
+ set option_value = '#{web_url}'
18
+ where option_name in ('siteurl', 'home')
19
+ SQL
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'eac_ruby_utils/console/docopt_runner'
5
+
6
+ module Avm
7
+ module Instances
8
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
9
+ class << self
10
+ def instance_class
11
+ ::Avm.const_get(stereotype_name).const_get('Instance')
12
+ end
13
+
14
+ def stereotype_module
15
+ ::Avm.const_get(stereotype_name)
16
+ end
17
+
18
+ def stereotype_name
19
+ name.demodulize
20
+ end
21
+ end
22
+
23
+ runner_with
24
+ description = "Utilities for #{stereotype_name} instances."
25
+ runner_definition do
26
+ desc description
27
+ pos_arg 'instance-id'
28
+ subcommands
29
+ end
30
+
31
+ delegate :instance_class, :stereotype_module, :stereotype_name, to: :class
32
+
33
+ private
34
+
35
+ def instance_uncached
36
+ self.class.instance_class.by_id(options.fetch('<instance-id>'))
37
+ end
38
+ end
39
+ end
40
+ end