avm-tools 0.68.0 → 0.69.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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/eac_rails_base0/apache_host.rb +17 -0
  3. data/lib/avm/eac_rails_base0/deploy.rb +50 -0
  4. data/lib/avm/eac_rails_base0/instance.rb +14 -0
  5. data/lib/avm/eac_redmine_base0/deploy.rb +2 -2
  6. data/lib/avm/eac_redmine_base0/instance.rb +2 -2
  7. data/lib/avm/eac_webapp_base0/apache_host.rb +103 -0
  8. data/lib/avm/eac_webapp_base0/deploy.rb +102 -0
  9. data/lib/avm/eac_webapp_base0/deploy/appended_directories.rb +25 -0
  10. data/lib/avm/eac_webapp_base0/deploy/file_unit.rb +41 -0
  11. data/lib/avm/eac_webapp_base0/deploy/git_info.rb +49 -0
  12. data/lib/avm/eac_webapp_base0/deploy/version.rb +20 -0
  13. data/lib/avm/eac_webapp_base0/instance.rb +50 -0
  14. data/lib/avm/eac_webapp_base0/runner/apache_host.rb +39 -0
  15. data/lib/avm/eac_webapp_base0/runner/data.rb +25 -0
  16. data/lib/avm/eac_webapp_base0/runner/data/dump.rb +69 -0
  17. data/lib/avm/eac_webapp_base0/runner/data/load.rb +66 -0
  18. data/lib/avm/eac_webapp_base0/runner/deploy.rb +59 -0
  19. data/lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb +2 -2
  20. data/lib/avm/stereotypes/eac_wordpress_base0/deploy.rb +2 -2
  21. data/lib/avm/stereotypes/eac_wordpress_base0/instance.rb +2 -2
  22. data/lib/avm/tools/runner/eac_rails_base0.rb +2 -2
  23. data/lib/avm/tools/runner/eac_rails_base0/apache_host.rb +3 -26
  24. data/lib/avm/tools/runner/eac_rails_base0/data.rb +2 -2
  25. data/lib/avm/tools/runner/eac_rails_base0/deploy.rb +3 -3
  26. data/lib/avm/tools/runner/eac_redmine_base0/data.rb +1 -1
  27. data/lib/avm/tools/runner/eac_redmine_base0/data/dump.rb +2 -2
  28. data/lib/avm/tools/runner/eac_redmine_base0/deploy.rb +2 -2
  29. data/lib/avm/tools/runner/eac_redmine_base0/project_rename.rb +1 -0
  30. data/lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb +3 -25
  31. data/lib/avm/tools/runner/eac_wordpress_base0/data.rb +2 -2
  32. data/lib/avm/tools/runner/eac_wordpress_base0/deploy.rb +2 -2
  33. data/lib/avm/tools/version.rb +1 -1
  34. data/template/avm/{stereotypes/eac_rails_base0 → eac_rails_base0}/deploy/config/database.yml.template +0 -0
  35. data/template/avm/{stereotypes/eac_webapp_base0 → eac_webapp_base0}/apache_host/no_ssl.conf +0 -0
  36. data/vendor/eac_cli/Gemfile +5 -0
  37. data/vendor/eac_cli/eac_cli.gemspec +18 -0
  38. data/vendor/eac_cli/lib/eac_cli.rb +7 -0
  39. data/vendor/eac_cli/lib/eac_cli/default_runner.rb +22 -0
  40. data/vendor/eac_cli/lib/eac_cli/definition.rb +72 -0
  41. data/vendor/eac_cli/lib/eac_cli/definition/argument_option.rb +13 -0
  42. data/vendor/eac_cli/lib/eac_cli/definition/base_option.rb +26 -0
  43. data/vendor/eac_cli/lib/eac_cli/definition/boolean_option.rb +13 -0
  44. data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +27 -0
  45. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +77 -0
  46. data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +45 -0
  47. data/vendor/eac_cli/lib/eac_cli/parser.rb +14 -0
  48. data/vendor/eac_cli/lib/eac_cli/parser/collector.rb +56 -0
  49. data/vendor/eac_cli/lib/eac_cli/parser/error.rb +15 -0
  50. data/vendor/eac_cli/lib/eac_cli/parser/options_collection.rb +105 -0
  51. data/vendor/eac_cli/lib/eac_cli/parser/parse_result.rb +21 -0
  52. data/vendor/eac_cli/lib/eac_cli/parser/positional_collection.rb +49 -0
  53. data/vendor/eac_cli/lib/eac_cli/runner.rb +87 -0
  54. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +18 -0
  55. data/vendor/eac_cli/lib/eac_cli/version.rb +5 -0
  56. data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +70 -0
  57. data/vendor/eac_cli/spec/rubocop_spec.rb +7 -0
  58. data/vendor/eac_cli/spec/spec_helper.rb +100 -0
  59. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +10 -0
  60. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple.rb +5 -34
  61. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +42 -0
  62. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/result.rb +25 -0
  63. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
  64. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb +4 -4
  65. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner.rb +6 -0
  66. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +1 -1
  67. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb +8 -2
  68. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +18 -0
  69. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/listable/value.rb +3 -2
  70. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb +4 -0
  71. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +9 -0
  72. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +47 -0
  73. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  74. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +15 -0
  75. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb +46 -0
  76. metadata +50 -18
  77. data/lib/avm/stereotypes/eac_rails_base0/apache_host.rb +0 -19
  78. data/lib/avm/stereotypes/eac_rails_base0/deploy.rb +0 -52
  79. data/lib/avm/stereotypes/eac_rails_base0/instance.rb +0 -16
  80. data/lib/avm/stereotypes/eac_webapp_base0/apache_host.rb +0 -97
  81. data/lib/avm/stereotypes/eac_webapp_base0/deploy.rb +0 -104
  82. data/lib/avm/stereotypes/eac_webapp_base0/deploy/appended_directories.rb +0 -27
  83. data/lib/avm/stereotypes/eac_webapp_base0/deploy/file_unit.rb +0 -43
  84. data/lib/avm/stereotypes/eac_webapp_base0/deploy/git_info.rb +0 -51
  85. data/lib/avm/stereotypes/eac_webapp_base0/deploy/version.rb +0 -22
  86. data/lib/avm/stereotypes/eac_webapp_base0/instance.rb +0 -52
  87. data/lib/avm/stereotypes/eac_webapp_base0/runner/data.rb +0 -27
  88. data/lib/avm/stereotypes/eac_webapp_base0/runner/data/dump.rb +0 -71
  89. data/lib/avm/stereotypes/eac_webapp_base0/runner/data/load.rb +0 -68
  90. data/lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb +0 -61
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes/eac_rails_base0/deploy'
4
- require 'avm/stereotypes/eac_webapp_base0/runner/deploy'
3
+ require 'avm/eac_rails_base0/deploy'
4
+ require 'avm/eac_webapp_base0/runner/deploy'
5
5
 
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner < ::EacRubyUtils::Console::DocoptRunner
9
9
  class EacRailsBase0 < ::EacRubyUtils::Console::DocoptRunner
10
- class Deploy < ::Avm::Stereotypes::EacWebappBase0::Runner::Deploy
10
+ class Deploy < ::Avm::EacWebappBase0::Runner::Deploy
11
11
  end
12
12
  end
13
13
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes/eac_webapp_base0/runner/data'
3
+ require 'avm/eac_webapp_base0/runner/data'
4
4
  require 'eac_ruby_utils/console/docopt_runner'
5
5
 
6
6
  module Avm
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes/eac_webapp_base0/runner/data/dump'
3
+ require 'avm/eac_webapp_base0/runner/data/dump'
4
4
 
5
5
  module Avm
6
6
  module Tools
7
7
  class Runner < ::EacRubyUtils::Console::DocoptRunner
8
8
  class EacRedmineBase0 < ::EacRubyUtils::Console::DocoptRunner
9
9
  class Data < ::EacRubyUtils::Console::DocoptRunner
10
- class Dump < ::Avm::Stereotypes::EacWebappBase0::Runner::Data::Dump
10
+ class Dump < ::Avm::EacWebappBase0::Runner::Data::Dump
11
11
  end
12
12
  end
13
13
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/eac_redmine_base0/deploy'
4
- require 'avm/stereotypes/eac_webapp_base0/runner/deploy'
4
+ require 'avm/eac_webapp_base0/runner/deploy'
5
5
 
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner < ::EacRubyUtils::Console::DocoptRunner
9
9
  class EacRedmineBase0 < ::EacRubyUtils::Console::DocoptRunner
10
- class Deploy < ::Avm::Stereotypes::EacWebappBase0::Runner::Deploy
10
+ class Deploy < ::Avm::EacWebappBase0::Runner::Deploy
11
11
  end
12
12
  end
13
13
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/rails/runners/runner'
3
4
  require 'eac_cli/default_runner'
4
5
 
5
6
  module Avm
@@ -1,37 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/eac_webapp_base0/runner/apache_host'
4
+ require 'eac_cli/default_runner'
3
5
  require 'eac_ruby_utils/console/docopt_runner'
4
- require 'eac_ruby_utils/console/speaker'
5
6
  require 'avm/stereotypes/eac_wordpress_base0/apache_host'
6
7
 
7
8
  module Avm
8
9
  module Tools
9
10
  class Runner < ::EacRubyUtils::Console::DocoptRunner
10
11
  class EacWordpressBase0 < ::EacRubyUtils::Console::DocoptRunner
11
- class ApacheHost < ::EacRubyUtils::Console::DocoptRunner
12
- include ::EacRubyUtils::Console::Speaker
13
-
14
- DOC = <<~DOCOPT
15
- Configure Apache virtual host for EacWordpressBase0 instance.
16
-
17
- Usage:
18
- __PROGRAM__ [options]
19
- __PROGRAM__ -h | --help
20
-
21
- Options:
22
- -h --help Show this screen.
23
- DOCOPT
24
-
25
- def run
26
- result = ::Avm::Stereotypes::EacWordpressBase0::ApacheHost.new(
27
- context(:instance)
28
- ).run
29
- if result.error?
30
- fatal_error result.to_s
31
- else
32
- infov 'Result', result.label
33
- end
34
- end
12
+ class ApacheHost < ::Avm::EacWebappBase0::Runner::ApacheHost
35
13
  end
36
14
  end
37
15
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes/eac_webapp_base0/runner/data'
3
+ require 'avm/eac_webapp_base0/runner/data'
4
4
  require 'eac_ruby_utils/console/docopt_runner'
5
5
 
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner < ::EacRubyUtils::Console::DocoptRunner
9
9
  class EacWordpressBase0 < ::EacRubyUtils::Console::DocoptRunner
10
- class Data < ::Avm::Stereotypes::EacWebappBase0::Runner::Data
10
+ class Data < ::Avm::EacWebappBase0::Runner::Data
11
11
  end
12
12
  end
13
13
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes/eac_webapp_base0/runner/deploy'
3
+ require 'avm/eac_webapp_base0/runner/deploy'
4
4
  require 'avm/stereotypes/eac_wordpress_base0/deploy'
5
5
 
6
6
  module Avm
7
7
  module Tools
8
8
  class Runner < ::EacRubyUtils::Console::DocoptRunner
9
9
  class EacWordpressBase0 < ::EacRubyUtils::Console::DocoptRunner
10
- class Deploy < ::Avm::Stereotypes::EacWebappBase0::Runner::Deploy
10
+ class Deploy < ::Avm::EacWebappBase0::Runner::Deploy
11
11
  end
12
12
  end
13
13
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.68.0'
5
+ VERSION = '0.69.0'
6
6
  end
7
7
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'eac_cli/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'eac_cli'
9
+ s.version = ::EacCli::VERSION
10
+ s.authors = ['Esquilo Azul Company']
11
+ s.summary = 'Utilities to build CLI applications with Ruby.'
12
+
13
+ s.files = Dir['{lib}/**/*', 'Gemfile']
14
+
15
+ s.add_dependency 'eac_ruby_utils', '~> 0.45'
16
+
17
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.1', '>= 0.1.2'
18
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacCli
6
+ require_sub __FILE__
7
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/concern'
4
+ require 'eac_cli/runner'
5
+ require 'eac_ruby_utils/console/speaker'
6
+ require 'eac_ruby_utils/simple_cache'
7
+
8
+ module EacCli
9
+ module DefaultRunner
10
+ extend ::ActiveSupport::Concern
11
+
12
+ included do
13
+ include ::EacCli::Runner
14
+ include ::EacRubyUtils::Console::Speaker
15
+ include ::EacRubyUtils::SimpleCache
16
+ runner_definition.alt do
17
+ options_arg false
18
+ bool_opt '-h', '--help', 'Show help.', usage: true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/definition/argument_option'
4
+ require 'eac_cli/definition/boolean_option'
5
+ require 'eac_cli/definition/positional_argument'
6
+ require 'eac_ruby_utils/core_ext'
7
+
8
+ module EacCli
9
+ class Definition
10
+ require_sub __FILE__
11
+ attr_accessor :description
12
+ attr_accessor :options_argument
13
+
14
+ def initialize
15
+ self.description = '-- NO DESCRIPTION SET --'
16
+ self.options_argument = true
17
+ end
18
+
19
+ def alt(&block)
20
+ r = ::EacCli::Definition.new
21
+ r.instance_eval(&block)
22
+ alternatives << r
23
+ r
24
+ end
25
+
26
+ def alternatives
27
+ @alternatives ||= []
28
+ end
29
+
30
+ def arg_opt(short, long, description, option_options = {})
31
+ options << ::EacCli::Definition::ArgumentOption.new(
32
+ short, long, description, option_options
33
+ )
34
+ end
35
+
36
+ def bool_opt(short, long, description, option_options = {})
37
+ options << ::EacCli::Definition::BooleanOption.new(short, long, description, option_options)
38
+ end
39
+
40
+ def desc(description)
41
+ self.description = description
42
+ end
43
+
44
+ def options_arg(options_argument)
45
+ self.options_argument = options_argument
46
+ end
47
+
48
+ def options
49
+ @options ||= []
50
+ end
51
+
52
+ def pos_arg(name, arg_options = {})
53
+ positional << ::EacCli::Definition::PositionalArgument.new(name, arg_options)
54
+ end
55
+
56
+ def positional
57
+ @positional ||= []
58
+ end
59
+
60
+ def subcommands
61
+ positional << ::EacCli::Definition::PositionalArgument.new('subcommand', subcommand: true)
62
+ end
63
+
64
+ def options_first(enable = true)
65
+ @options_first = enable
66
+ end
67
+
68
+ def options_first?
69
+ @options_first ? true : false
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/definition/base_option'
4
+
5
+ module EacCli
6
+ class Definition
7
+ class ArgumentOption < ::EacCli::Definition::BaseOption
8
+ def argument?
9
+ true
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacCli
6
+ class Definition
7
+ class BaseOption
8
+ attr_reader :short, :long, :description, :options
9
+
10
+ def initialize(short, long, description, options = {})
11
+ @short = short
12
+ @long = long
13
+ @description = description
14
+ @options = options.with_indifferent_access
15
+ end
16
+
17
+ def identifier
18
+ long.to_s.variableize.to_sym
19
+ end
20
+
21
+ def show_on_usage?
22
+ options[:usage]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/definition/base_option'
4
+
5
+ module EacCli
6
+ class Definition
7
+ class BooleanOption < ::EacCli::Definition::BaseOption
8
+ def argument?
9
+ false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacCli
6
+ class Definition
7
+ class PositionalArgument
8
+ common_constructor :name, :options, default: [{}]
9
+
10
+ def identifier
11
+ name.to_s.variableize.to_sym
12
+ end
13
+
14
+ def optional?
15
+ options[:optional]
16
+ end
17
+
18
+ def repeat?
19
+ options[:repeat]
20
+ end
21
+
22
+ def subcommand?
23
+ options[:subcommand]
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_ruby_utils/console/docopt_runner'
5
+
6
+ module EacCli
7
+ module Docopt
8
+ class DocBuilder
9
+ common_constructor :definition
10
+
11
+ SEP = ' '
12
+ IDENT = SEP * 2
13
+ OPTION_DESC_SEP = IDENT * 2
14
+
15
+ def positional_argument(positional)
16
+ if positional.subcommand?
17
+ ::EacRubyUtils::Console::DocoptRunner::SUBCOMMANDS_MACRO
18
+ else
19
+ r = "<#{positional.name}>"
20
+ r += '...' if positional.repeat?
21
+ r = "[#{r}]" if positional.optional?
22
+ r
23
+ end
24
+ end
25
+
26
+ def option_argument(option)
27
+ option_long(option)
28
+ end
29
+
30
+ def option_definition(option)
31
+ option.short + SEP + option_long(option) + OPTION_DESC_SEP + option.description
32
+ end
33
+
34
+ def option_long(option)
35
+ b = option.long
36
+ b += '=<value>' if option.argument?
37
+ b
38
+ end
39
+
40
+ def section(header, include_header = true)
41
+ b = include_header ? "#{header.humanize}:\n" : ''
42
+ b += send("self_#{header}") + "\n"
43
+ definition.alternatives.each do |alternative|
44
+ b += self.class.new(alternative).section(header, false)
45
+ end
46
+ b
47
+ end
48
+
49
+ def self_options
50
+ definition.options.map { |option| IDENT + option_definition(option) }.join("\n")
51
+ end
52
+
53
+ def self_usage
54
+ IDENT + self_usage_arguments.join(SEP)
55
+ end
56
+
57
+ def self_usage_arguments
58
+ [::EacRubyUtils::Console::DocoptRunner::PROGRAM_MACRO] +
59
+ definition.options_argument.if_present([]) { |_v| ['[options]'] } +
60
+ self_usage_arguments_options +
61
+ self_usage_arguments_positional
62
+ end
63
+
64
+ def self_usage_arguments_options
65
+ definition.options.select(&:show_on_usage?).map { |option| option_argument(option) }
66
+ end
67
+
68
+ def self_usage_arguments_positional
69
+ definition.positional.map { |p| positional_argument(p) }
70
+ end
71
+
72
+ def to_s
73
+ "#{definition.description}\n\n#{section('usage')}\n#{section('options')}\n"
74
+ end
75
+ end
76
+ end
77
+ end