avm-tools 0.100.0 → 0.101.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/lib/avm/docker/image.rb +7 -23
- data/lib/avm/docker/runner.rb +32 -6
- data/lib/avm/eac_rails_base1/runner/bundle.rb +1 -2
- data/lib/avm/eac_redmine_base0/docker_image.rb +52 -0
- data/lib/avm/eac_redmine_base0/instance.rb +2 -2
- data/lib/avm/instances/base/dockerizable.rb +1 -0
- data/lib/avm/instances/base/entry_keys.rb +6 -1
- data/lib/avm/instances/docker_image.rb +15 -0
- data/lib/avm/instances/entries.rb +0 -1
- data/lib/avm/instances/entry.rb +3 -2
- data/lib/avm/instances/entry_keys.rb +1 -0
- data/lib/avm/self.rb +9 -0
- data/lib/avm/tools/runner.rb +4 -0
- data/lib/avm/tools/runner/config/load_path.rb +4 -3
- data/lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb +17 -0
- data/lib/avm/tools/runner/eac_redmine_base0/docker.rb +3 -0
- data/lib/avm/tools/runner/git/deploy.rb +2 -1
- data/lib/avm/tools/version.rb +1 -1
- data/template/avm/eac_redmine_base0/docker_image/Dockerfile.template +47 -0
- data/template/avm/eac_redmine_base0/docker_image/apache_http_virtualhost.conf.template +10 -0
- data/template/avm/eac_redmine_base0/docker_image/apache_https_virtualhost.conf.template +16 -0
- data/template/avm/eac_redmine_base0/docker_image/install_settings.sh.template +29 -0
- data/template/avm/eac_redmine_base0/docker_image/start.sh.template +25 -0
- data/template/avm/eac_ubuntu_base0/docker_image/Dockerfile +1 -1
- data/vendor/avm-apps/lib/avm/apps/config.rb +15 -0
- data/vendor/avm-apps/lib/avm/apps/jobs/base.rb +1 -1
- data/vendor/avm-apps/lib/avm/apps/version.rb +1 -1
- data/vendor/eac_cli/lib/eac_cli/config/entry.rb +2 -0
- data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +6 -1
- data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +3 -1
- data/vendor/eac_cli/lib/eac_cli/runner_with/help.rb +6 -2
- data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +5 -1
- data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
- data/vendor/eac_git/lib/eac_git/executables.rb +4 -0
- data/vendor/eac_git/lib/eac_git/local/commit/archive.rb +19 -0
- data/vendor/eac_git/lib/eac_git/version.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/context.rb +31 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +21 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +11 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +15 -3
- data/lib/avm/configs.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5243b812d2aa6e9e61cff80a964aa4b035abd9dd85051f5798fbfc6b1c00486a
|
4
|
+
data.tar.gz: 8c79b0a42a1d863349129e5a2ab8d091f8765abea99815d4f706e64126f843bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1c66dd955e5367563ccad9d9ae5e44946c109b9abf519b3bddb04cd5bda6dcb4b74a6bc4745f1ba7fd400111ab5ce41e5172cd3d28765ea44106531ba8d8644
|
7
|
+
data.tar.gz: 2b7c051160d2c1b549a25b6a620a9458c151b85887c1bcffd859ac4099fd72e57a6d2af17309b293883a1da0b431a64b54e8491446e191efed274f18a2f93dfe
|
data/lib/avm/docker/image.rb
CHANGED
@@ -3,10 +3,11 @@
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
4
4
|
require 'avm/executables'
|
5
5
|
require 'avm/patches/object/template'
|
6
|
+
require 'eac_docker/images/templatized'
|
6
7
|
|
7
8
|
module Avm
|
8
9
|
module Docker
|
9
|
-
class Image
|
10
|
+
class Image < ::EacDocker::Images::Templatized
|
10
11
|
attr_reader :registry
|
11
12
|
attr_accessor :snapshot
|
12
13
|
attr_accessor :version
|
@@ -18,10 +19,9 @@ module Avm
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def build(extra_args = [])
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
22
|
+
nyi "Extra args: #{extra_args}" if extra_args.any?
|
23
|
+
|
24
|
+
provide
|
25
25
|
end
|
26
26
|
|
27
27
|
def generator_version
|
@@ -32,9 +32,10 @@ module Avm
|
|
32
32
|
::Avm::Executables.docker.command.append(['push', tag]).system!
|
33
33
|
end
|
34
34
|
|
35
|
-
def read_entry(path,
|
35
|
+
def read_entry(path, options = {})
|
36
36
|
method = path.gsub('.', '_')
|
37
37
|
return send(method) if respond_to?(path, true)
|
38
|
+
return instance.read_entry(path, options) if respond_to?(:instance)
|
38
39
|
|
39
40
|
raise "Method \"#{method}\" not found for entry \"#{path}\""
|
40
41
|
end
|
@@ -66,23 +67,6 @@ module Avm
|
|
66
67
|
r += '-snapshot' if snapshot
|
67
68
|
r
|
68
69
|
end
|
69
|
-
|
70
|
-
private
|
71
|
-
|
72
|
-
attr_reader :build_dir
|
73
|
-
|
74
|
-
def run_docker_build(extra_args)
|
75
|
-
::Avm::Executables.docker.command.append(
|
76
|
-
['build', '-t', tag] + extra_args + [build_dir]
|
77
|
-
).system!
|
78
|
-
end
|
79
|
-
|
80
|
-
def on_build_dir
|
81
|
-
@build_dir = ::Dir.mktmpdir
|
82
|
-
yield
|
83
|
-
ensure
|
84
|
-
::FileUtils.rm_rf(@build_dir)
|
85
|
-
end
|
86
70
|
end
|
87
71
|
end
|
88
72
|
end
|
data/lib/avm/docker/runner.rb
CHANGED
@@ -43,42 +43,68 @@ module Avm
|
|
43
43
|
infov 'Registry name', registry
|
44
44
|
infov 'Version?', version?
|
45
45
|
infov 'Snapshot?', snapshot?
|
46
|
-
infov 'Image name',
|
46
|
+
infov 'Image name', docker_image.tag
|
47
47
|
infov 'Build arguments', build_args
|
48
48
|
infov 'Entrypoint arguments', entrypoint_args
|
49
49
|
end
|
50
50
|
|
51
51
|
def build
|
52
|
-
|
52
|
+
docker_image.build(build_args)
|
53
|
+
success 'Docker image builded'
|
53
54
|
end
|
54
55
|
|
55
56
|
def build_args
|
56
57
|
parsed.build_arg
|
57
58
|
end
|
58
59
|
|
60
|
+
def docker_container
|
61
|
+
instance.docker_container
|
62
|
+
end
|
63
|
+
|
64
|
+
def docker_image
|
65
|
+
instance.docker_image
|
66
|
+
end
|
67
|
+
|
59
68
|
def entrypoint_args
|
60
69
|
parsed.entrypoint_arg
|
61
70
|
end
|
62
71
|
|
63
72
|
def push
|
64
|
-
|
73
|
+
docker_image.push if parsed.push?
|
65
74
|
end
|
66
75
|
|
67
76
|
def container_run
|
68
77
|
return unless parsed.run?
|
69
78
|
|
70
|
-
|
79
|
+
docker_container.run(
|
71
80
|
entrypoint_args: entrypoint_args,
|
72
81
|
clear: parsed.clear?
|
73
82
|
)
|
74
83
|
end
|
75
84
|
|
76
85
|
def registry_uncached
|
77
|
-
|
78
|
-
|
86
|
+
registry_from_option || registry_from_instance || registry_from_default ||
|
87
|
+
fatal_error('No registry defined')
|
88
|
+
end
|
89
|
+
|
90
|
+
def registry_from_option
|
91
|
+
parsed.registry_name.if_present { |v| ::Avm::Docker::Registry.new(v) }
|
92
|
+
end
|
93
|
+
|
94
|
+
def registry_from_instance
|
95
|
+
if if_respond(:use_default_registry?, true)
|
96
|
+
instance.docker_registry_optional.if_present { |v| ::Avm::Docker::Registry.new(v) }
|
97
|
+
else
|
98
|
+
::Avm::Docker::Registry.new(instance.docker_registry)
|
79
99
|
end
|
80
100
|
end
|
81
101
|
|
102
|
+
def registry_from_default
|
103
|
+
return nil unless if_respond(:use_default_registry?, true)
|
104
|
+
|
105
|
+
::Avm::Docker::Registry.default
|
106
|
+
end
|
107
|
+
|
82
108
|
def snapshot?
|
83
109
|
!parsed.no_snapshot?
|
84
110
|
end
|
@@ -8,8 +8,7 @@ module Avm
|
|
8
8
|
module EacRailsBase1
|
9
9
|
class Runner < ::Avm::EacWebappBase0::Runner
|
10
10
|
class Bundle
|
11
|
-
runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle
|
12
|
-
runner_definition do
|
11
|
+
runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle, :help do
|
13
12
|
desc 'Runs "bundle ...".'
|
14
13
|
pos_arg :'bundle-args', repeat: true, optional: true
|
15
14
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/core_ext'
|
4
|
+
require 'avm/instances/docker_image'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacRedmineBase0
|
8
|
+
class DockerImage < ::Avm::Instances::DockerImage
|
9
|
+
enable_simple_cache
|
10
|
+
|
11
|
+
REDMINE_SOURCE_HOST_SUBPATH = 'redmine_source'
|
12
|
+
|
13
|
+
def avm_fs_cache_object_id
|
14
|
+
instance.id
|
15
|
+
end
|
16
|
+
|
17
|
+
def redmine_user
|
18
|
+
'redmine'
|
19
|
+
end
|
20
|
+
|
21
|
+
def redmine_user_home
|
22
|
+
"/home/#{redmine_user}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def redmine_path
|
26
|
+
"#{redmine_user_home}/redmine_app"
|
27
|
+
end
|
28
|
+
|
29
|
+
def start_path
|
30
|
+
'/start.sh'
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def git_repo_uncached
|
36
|
+
::EacGit::Local.new(instance.source_instance.fs_path)
|
37
|
+
end
|
38
|
+
|
39
|
+
def redmine_source_git_id
|
40
|
+
git_repo.rev_parse('HEAD')
|
41
|
+
end
|
42
|
+
|
43
|
+
def redmine_source_path_uncached
|
44
|
+
r = provide_dir.join(REDMINE_SOURCE_HOST_SUBPATH)
|
45
|
+
::FileUtils.rm_rf(r.to_path)
|
46
|
+
r.mkpath
|
47
|
+
git_repo.commit(redmine_source_git_id).archive_to_dir(r).system!
|
48
|
+
REDMINE_SOURCE_HOST_SUBPATH
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/eac_redmine_base0/data_unit'
|
4
|
-
require 'avm/
|
4
|
+
require 'avm/eac_redmine_base0/docker_image'
|
5
5
|
require 'avm/eac_webapp_base0/instance'
|
6
6
|
require 'avm/eac_rails_base1/instance'
|
7
7
|
|
@@ -11,7 +11,7 @@ module Avm
|
|
11
11
|
FILES_UNITS = { files: 'files' }.freeze
|
12
12
|
|
13
13
|
def docker_image_class
|
14
|
-
::Avm::
|
14
|
+
::Avm::EacRedmineBase0::DockerImage
|
15
15
|
end
|
16
16
|
|
17
17
|
def docker_run_arguments
|
@@ -33,6 +33,7 @@ module Avm
|
|
33
33
|
|
34
34
|
def docker_image_uncached
|
35
35
|
r = docker_image_class.new(docker_image_options.fetch(:registry))
|
36
|
+
r.instance = self if r.respond_to?(:instance)
|
36
37
|
r.version = docker_image_options[:version] if docker_image_options.key?(:version)
|
37
38
|
r.snapshot = docker_image_options[:snapshot] if docker_image_options.key?(:snapshot)
|
38
39
|
r
|
@@ -7,9 +7,14 @@ module Avm
|
|
7
7
|
class Base
|
8
8
|
module EntryKeys
|
9
9
|
::Avm::Instances::EntryKeys.all.each do |key|
|
10
|
-
|
10
|
+
method_name = key.to_s.variableize
|
11
|
+
define_method method_name do
|
11
12
|
read_entry(key)
|
12
13
|
end
|
14
|
+
|
15
|
+
define_method "#{method_name}_optional" do
|
16
|
+
read_entry(key, required: false)
|
17
|
+
end
|
13
18
|
end
|
14
19
|
end
|
15
20
|
end
|
data/lib/avm/instances/entry.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/apps/config'
|
3
4
|
require 'eac_ruby_utils/core_ext'
|
4
5
|
|
5
6
|
module Avm
|
@@ -30,7 +31,7 @@ module Avm
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def read(extra_options = {})
|
33
|
-
::Avm.
|
34
|
+
::Avm::Apps::Config.current.entry(full_path, options.merge(extra_options)).value
|
34
35
|
end
|
35
36
|
|
36
37
|
def suffix_as_array
|
@@ -46,7 +47,7 @@ module Avm
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def write(value)
|
49
|
-
::Avm.
|
50
|
+
::Avm::Apps::Config.current.entry(full_path).value = value
|
50
51
|
end
|
51
52
|
end
|
52
53
|
end
|
@@ -44,6 +44,7 @@ module Avm
|
|
44
44
|
{
|
45
45
|
'' => %w[fs_path host_id source_instance_id],
|
46
46
|
database: %w[id hostname limit name password port system timeout username],
|
47
|
+
docker: %w[registry],
|
47
48
|
mailer: {
|
48
49
|
'' => %w[id from reply_to],
|
49
50
|
smtp: %w[address port domain username password authentication starttls_auto]
|
data/lib/avm/self.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_cli/old_configs_bridge'
|
3
4
|
require 'eac_ruby_base0/application'
|
4
5
|
require 'eac_ruby_utils/require_sub'
|
5
6
|
require 'avm/instances/base'
|
@@ -13,6 +14,14 @@ module Avm
|
|
13
14
|
@application ||= ::EacRubyBase0::Application.new(root.to_path)
|
14
15
|
end
|
15
16
|
|
17
|
+
# @return [EacCli::OldConfigsBridge]
|
18
|
+
def build_config(path = nil)
|
19
|
+
::EacCli::OldConfigsBridge.new(
|
20
|
+
application.name,
|
21
|
+
path.if_present({}) { |v| { storage_path: v } }
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
16
25
|
def instance
|
17
26
|
@instance ||= ::Avm::Self::Instance.by_id('avm-tools_self')
|
18
27
|
end
|
data/lib/avm/tools/runner.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/apps/config'
|
3
4
|
require 'avm/self'
|
4
5
|
require 'avm/core_ext'
|
5
6
|
|
@@ -20,9 +21,9 @@ module Avm
|
|
20
21
|
|
21
22
|
private
|
22
23
|
|
23
|
-
# @return [[EacCli::
|
24
|
+
# @return [[EacCli::Config]]
|
24
25
|
def config_node
|
25
|
-
::Avm.
|
26
|
+
::Avm::Apps::Config.current
|
26
27
|
end
|
27
28
|
|
28
29
|
def run_add
|
@@ -34,7 +35,7 @@ module Avm
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def run_show
|
37
|
-
infov 'Configuration path', config_node.
|
38
|
+
infov 'Configuration path', config_node.url
|
38
39
|
infov 'Paths included', config_node.self_loaded_nodes.count
|
39
40
|
config_node.self_loaded_nodes.each do |loaded_node|
|
40
41
|
infov ' * ', loaded_node.url
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/docker/runner'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class EacRedmineBase0 < ::Avm::EacRailsBase1::Runner
|
9
|
+
class DevDocker < ::Avm::Docker::Runner
|
10
|
+
def docker_image
|
11
|
+
::Avm::EacUbuntuBase0::DockerImage
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/apps/config'
|
3
4
|
require 'avm/launcher/git/base'
|
4
5
|
require 'avm/git/commit'
|
5
6
|
|
@@ -90,7 +91,7 @@ module Avm
|
|
90
91
|
end
|
91
92
|
|
92
93
|
def variables_source
|
93
|
-
instance || ::Avm.
|
94
|
+
instance || ::Avm::Apps::Config.current
|
94
95
|
end
|
95
96
|
|
96
97
|
def instance_uncached
|
data/lib/avm/tools/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
FROM ubuntu:20.04
|
2
|
+
RUN apt-get update -y
|
3
|
+
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y sudo tzdata git apt-utils
|
4
|
+
RUN ln -fs /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
|
5
|
+
RUN dpkg-reconfigure --frontend noninteractive tzdata
|
6
|
+
|
7
|
+
# Usuário "%%redmine_user%%"
|
8
|
+
RUN /usr/sbin/useradd --shell /bin/bash --home-dir '%%redmine_user_home%%' --create-home '%%redmine_user%%'
|
9
|
+
RUN /bin/echo '%%redmine_user%%:%%redmine_user%%' | /usr/sbin/chpasswd
|
10
|
+
RUN /bin/chown '%%redmine_user%%:%%redmine_user%%' %%redmine_user_home%% -R
|
11
|
+
RUN /bin/echo "%%redmine_user%% ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/%%redmine_user%%_all_nopasswd && chmod 0440 /etc/sudoers.d/%%redmine_user%%_all_nopasswd
|
12
|
+
|
13
|
+
# Redmine / Código-fonte
|
14
|
+
RUN echo '%%redmine_source_git_id%%' '%%redmine_user_home%%/redmine_source_git_id'
|
15
|
+
ADD '%%redmine_source_path%%' '%%redmine_path%%/'
|
16
|
+
RUN chown -R '%%redmine_user%%:%%redmine_user%%' '%%redmine_user_home%%'
|
17
|
+
|
18
|
+
# Redmine / Configuração de instalação
|
19
|
+
USER '%%redmine_user%%'
|
20
|
+
WORKDIR '%%redmine_user_home%%'
|
21
|
+
COPY install_settings.sh "%%redmine_path%%/config/install.sh"
|
22
|
+
|
23
|
+
# Redmine / Instalação
|
24
|
+
USER '%%redmine_user%%'
|
25
|
+
WORKDIR '%%redmine_user_home%%'
|
26
|
+
RUN '%%redmine_path%%/plugins/redmine_installer/installer/run.sh' redmine_as_apache_base
|
27
|
+
|
28
|
+
# Apache / Configuração do virtualhost
|
29
|
+
COPY apache_http_virtualhost.conf /etc/apache2/sites-available/redmine.conf
|
30
|
+
COPY apache_https_virtualhost.conf /etc/apache2/sites-available/redmine_ssl.conf
|
31
|
+
USER root
|
32
|
+
RUN a2ensite redmine
|
33
|
+
RUN a2ensite redmine_ssl
|
34
|
+
RUN a2dissite 000-default
|
35
|
+
RUN a2enmod ssl
|
36
|
+
RUN service apache2 restart
|
37
|
+
|
38
|
+
# Portas
|
39
|
+
EXPOSE 80/tcp 443/tcp 22/tcp
|
40
|
+
|
41
|
+
# Execução
|
42
|
+
COPY start.sh '%%start_path%%'
|
43
|
+
RUN /bin/chmod +x '%%start_path%%'
|
44
|
+
RUN /bin/chown '%%redmine_user%%:%%redmine_user%%' '%%start_path%%'
|
45
|
+
USER '%%redmine_user%%'
|
46
|
+
WORKDIR '%%redmine_user_home%%'
|
47
|
+
ENTRYPOINT '%%start_path%%'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<IfModule mod_ssl.c>
|
2
|
+
<VirtualHost _default_:443>
|
3
|
+
SSLEngine on
|
4
|
+
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
5
|
+
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
|
6
|
+
|
7
|
+
DocumentRoot "%%redmine_path%%/public"
|
8
|
+
PassengerEnabled On
|
9
|
+
|
10
|
+
<Directory "%%redmine_path%%/public" >
|
11
|
+
Allow from all
|
12
|
+
Options -MultiViews
|
13
|
+
Require all granted
|
14
|
+
</Directory>
|
15
|
+
</VirtualHost>
|
16
|
+
</IfModule>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Database (PostgreSQL)
|
2
|
+
export postgresql_database=redmine
|
3
|
+
export postgresql_database_test=redmine_test
|
4
|
+
export postgresql_user=redmine
|
5
|
+
export postgresql_password=redmine
|
6
|
+
|
7
|
+
# Git hosting
|
8
|
+
export gitolite_user=git
|
9
|
+
export gitolite_user_home="/var/lib/$gitolite_user"
|
10
|
+
export redmine_git_hosting_ssh_key_name=redmine_git_hosting_id
|
11
|
+
export git_repositories_hierarchical_organisation=false
|
12
|
+
|
13
|
+
# Address
|
14
|
+
export address_https=false
|
15
|
+
export address_host="%%web.hostname%%"
|
16
|
+
export address_port=
|
17
|
+
export address_path=
|
18
|
+
|
19
|
+
# Mail
|
20
|
+
export smtp_server='mail.trf1.jus.br'
|
21
|
+
export smtp_port='25'
|
22
|
+
export smtp_domain='trf1.jus.br'
|
23
|
+
export smtp_tls='false'
|
24
|
+
export smtp_enable_starttls_auto=''
|
25
|
+
export smtp_openssl_verify_mode=''
|
26
|
+
export smtp_authentication='none'
|
27
|
+
export smtp_username=''
|
28
|
+
export smtp_password=''
|
29
|
+
export mail_from='"redmine-trf1_0" <redmine@trf1.jus.br>'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -u
|
4
|
+
set -e
|
5
|
+
|
6
|
+
function title() {
|
7
|
+
printf ">>>> %s <<<<\n" "$1"
|
8
|
+
}
|
9
|
+
|
10
|
+
title 'Restarting Apache HTTPD service...'
|
11
|
+
sudo service apache2 restart
|
12
|
+
|
13
|
+
title 'Restarting SSH service...'
|
14
|
+
sudo service ssh restart
|
15
|
+
|
16
|
+
title 'Restarting PostgresSQL service...'
|
17
|
+
sudo service postgresql restart
|
18
|
+
|
19
|
+
title 'Requesting web interface...'
|
20
|
+
wget 'http://localhost' &> /dev/null
|
21
|
+
|
22
|
+
title 'Reading production log...'
|
23
|
+
LOG_FILE='%%redmine_path%%/log/production.log'
|
24
|
+
printf " * tail -f \"$LOG_FILE\":\n"
|
25
|
+
sudo tail -f "$LOG_FILE"
|
@@ -6,9 +6,10 @@ module EacCli
|
|
6
6
|
class Definition
|
7
7
|
class PositionalArgument
|
8
8
|
DEFAULT_REQUIRED = true
|
9
|
+
DEFAULT_VISIBLE = true
|
9
10
|
|
10
11
|
enable_listable
|
11
|
-
lists.add_symbol :option, :optional, :repeat, :required, :subcommand
|
12
|
+
lists.add_symbol :option, :optional, :repeat, :required, :subcommand, :visible
|
12
13
|
common_constructor :name, :options, default: [{}] do
|
13
14
|
options.assert_valid_keys(self.class.lists.option.values)
|
14
15
|
end
|
@@ -51,6 +52,10 @@ module EacCli
|
|
51
52
|
def to_s
|
52
53
|
"#{self.class.name.demodulize}[#{identifier}]"
|
53
54
|
end
|
55
|
+
|
56
|
+
def visible?
|
57
|
+
options.key?(OPTION_VISIBLE) ? options.fetch(OPTION_VISIBLE) : DEFAULT_VISIBLE
|
58
|
+
end
|
54
59
|
end
|
55
60
|
end
|
56
61
|
end
|
@@ -31,10 +31,12 @@ module EacCli
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def positionals
|
34
|
-
alternative.positional.map { |p| positional(p) }
|
34
|
+
alternative.positional.map { |p| positional(p) }.reject(&:blank?)
|
35
35
|
end
|
36
36
|
|
37
37
|
def positional(positional)
|
38
|
+
return unless positional.visible?
|
39
|
+
|
38
40
|
if positional.subcommand?
|
39
41
|
::EacCli::DocoptRunner::SUBCOMMANDS_MACRO
|
40
42
|
else
|
@@ -10,8 +10,8 @@ module EacCli
|
|
10
10
|
include ::EacCli::Runner
|
11
11
|
|
12
12
|
runner_definition.alt do
|
13
|
-
options_argument false
|
14
13
|
bool_opt '-h', '--help', 'Show help.', usage: true
|
14
|
+
pos_arg :any_arg_with_help, repeat: true, optional: true, visible: false
|
15
15
|
end
|
16
16
|
|
17
17
|
set_callback :run, :before do
|
@@ -20,7 +20,7 @@ module EacCli
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def help_run
|
23
|
-
return unless
|
23
|
+
return unless show_help?
|
24
24
|
|
25
25
|
puts help_text
|
26
26
|
raise ::EacCli::Runner::Exit
|
@@ -31,6 +31,10 @@ module EacCli
|
|
31
31
|
r += help_extra_text if respond_to?(:help_extra_text)
|
32
32
|
r
|
33
33
|
end
|
34
|
+
|
35
|
+
def show_help?
|
36
|
+
parsed.help? && !if_respond(:run_subcommand?, false)
|
37
|
+
end
|
34
38
|
end
|
35
39
|
end
|
36
40
|
end
|
@@ -60,7 +60,7 @@ module EacCli
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def run_with_subcommand
|
63
|
-
if
|
63
|
+
if run_subcommand?
|
64
64
|
if subcommand_runner.respond_to?(:run_run)
|
65
65
|
subcommand_runner.run_run
|
66
66
|
else
|
@@ -79,6 +79,10 @@ module EacCli
|
|
79
79
|
"Method #{__method__} should be overrided in #{self.class.name}"
|
80
80
|
end
|
81
81
|
|
82
|
+
def run_subcommand?
|
83
|
+
subcommand_name.present?
|
84
|
+
end
|
85
|
+
|
82
86
|
def subcommands?
|
83
87
|
self.class.runner_definition.subcommands?
|
84
88
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacGit
|
6
|
+
class Local
|
7
|
+
class Commit
|
8
|
+
module Archive
|
9
|
+
# @return [EacRubyUtils::Envs::Command]
|
10
|
+
def archive_to_dir(path)
|
11
|
+
path = path.to_pathname
|
12
|
+
repo.command('archive', '--format=tar', hash).pipe(
|
13
|
+
::EacGit::Executables.tar.command('-xC', path)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRubyUtils
|
4
|
+
class Context
|
5
|
+
def current
|
6
|
+
optional_current || raise('No elements in context')
|
7
|
+
end
|
8
|
+
|
9
|
+
def optional_current
|
10
|
+
stack.last
|
11
|
+
end
|
12
|
+
|
13
|
+
delegate :pop, to: :stack
|
14
|
+
delegate :push, to: :stack
|
15
|
+
|
16
|
+
def on(obj)
|
17
|
+
push(obj)
|
18
|
+
begin
|
19
|
+
yield
|
20
|
+
ensure
|
21
|
+
pop
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def stack
|
28
|
+
@stack ||= []
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/context'
|
4
|
+
|
5
|
+
module EacRubyUtils
|
6
|
+
module Contextualizable
|
7
|
+
common_concern
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def context
|
11
|
+
@context ||= ::EacRubyUtils::Context.new
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module InstanceMethods
|
16
|
+
def context
|
17
|
+
self.class.context
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/patch'
|
4
|
+
require 'eac_ruby_utils/contextualizable'
|
5
|
+
|
6
|
+
class Module
|
7
|
+
# Patches module with [EacRubyUtils::Contextualizable].
|
8
|
+
def enable_context
|
9
|
+
::EacRubyUtils.patch(self, ::EacRubyUtils::Contextualizable)
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.101.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -324,7 +324,6 @@ files:
|
|
324
324
|
- lib/avm.rb
|
325
325
|
- lib/avm/app_src.rb
|
326
326
|
- lib/avm/cached_download.rb
|
327
|
-
- lib/avm/configs.rb
|
328
327
|
- lib/avm/core_ext.rb
|
329
328
|
- lib/avm/data.rb
|
330
329
|
- lib/avm/data/instance.rb
|
@@ -365,6 +364,7 @@ files:
|
|
365
364
|
- lib/avm/eac_redmine_base0/core_update.rb
|
366
365
|
- lib/avm/eac_redmine_base0/data_unit.rb
|
367
366
|
- lib/avm/eac_redmine_base0/deploy.rb
|
367
|
+
- lib/avm/eac_redmine_base0/docker_image.rb
|
368
368
|
- lib/avm/eac_redmine_base0/instance.rb
|
369
369
|
- lib/avm/eac_ubuntu_base0.rb
|
370
370
|
- lib/avm/eac_ubuntu_base0/apache.rb
|
@@ -487,6 +487,7 @@ files:
|
|
487
487
|
- lib/avm/instances/base/auto_values/web.rb
|
488
488
|
- lib/avm/instances/base/dockerizable.rb
|
489
489
|
- lib/avm/instances/base/entry_keys.rb
|
490
|
+
- lib/avm/instances/docker_image.rb
|
490
491
|
- lib/avm/instances/entries.rb
|
491
492
|
- lib/avm/instances/entry.rb
|
492
493
|
- lib/avm/instances/entry_keys.rb
|
@@ -618,6 +619,7 @@ files:
|
|
618
619
|
- lib/avm/tools/runner/eac_rails_base0.rb
|
619
620
|
- lib/avm/tools/runner/eac_redmine_base0.rb
|
620
621
|
- lib/avm/tools/runner/eac_redmine_base0/core_update.rb
|
622
|
+
- lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb
|
621
623
|
- lib/avm/tools/runner/eac_redmine_base0/docker.rb
|
622
624
|
- lib/avm/tools/runner/eac_redmine_base0/project_rename.rb
|
623
625
|
- lib/avm/tools/runner/eac_webapp_base0.rb
|
@@ -657,6 +659,11 @@ files:
|
|
657
659
|
- template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template
|
658
660
|
- template/avm/eac_redmine_base0/deploy/config/install.sh.template
|
659
661
|
- template/avm/eac_redmine_base0/deploy/config/secrets.yml
|
662
|
+
- template/avm/eac_redmine_base0/docker_image/Dockerfile.template
|
663
|
+
- template/avm/eac_redmine_base0/docker_image/apache_http_virtualhost.conf.template
|
664
|
+
- template/avm/eac_redmine_base0/docker_image/apache_https_virtualhost.conf.template
|
665
|
+
- template/avm/eac_redmine_base0/docker_image/install_settings.sh.template
|
666
|
+
- template/avm/eac_redmine_base0/docker_image/start.sh.template
|
660
667
|
- template/avm/eac_ubuntu_base0/docker_image/Dockerfile
|
661
668
|
- template/avm/eac_webapp_base0/apache_host/no_ssl.conf
|
662
669
|
- template/avm/eac_webapp_base0/apache_path/default.conf
|
@@ -681,6 +688,7 @@ files:
|
|
681
688
|
- vendor/avm-apps/Gemfile
|
682
689
|
- vendor/avm-apps/avm-apps.gemspec
|
683
690
|
- vendor/avm-apps/lib/avm/apps.rb
|
691
|
+
- vendor/avm-apps/lib/avm/apps/config.rb
|
684
692
|
- vendor/avm-apps/lib/avm/apps/jobs.rb
|
685
693
|
- vendor/avm-apps/lib/avm/apps/jobs/base.rb
|
686
694
|
- vendor/avm-apps/lib/avm/apps/jobs/variables_source.rb
|
@@ -840,6 +848,7 @@ files:
|
|
840
848
|
- vendor/eac_git/lib/eac_git/executables.rb
|
841
849
|
- vendor/eac_git/lib/eac_git/local.rb
|
842
850
|
- vendor/eac_git/lib/eac_git/local/commit.rb
|
851
|
+
- vendor/eac_git/lib/eac_git/local/commit/archive.rb
|
843
852
|
- vendor/eac_git/lib/eac_git/local/commit/changed_file.rb
|
844
853
|
- vendor/eac_git/lib/eac_git/local/commit/diff_tree_line.rb
|
845
854
|
- vendor/eac_git/lib/eac_git/local/dirty_files.rb
|
@@ -1118,6 +1127,8 @@ files:
|
|
1118
1127
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
|
1119
1128
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb
|
1120
1129
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb
|
1130
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/context.rb
|
1131
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb
|
1121
1132
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb
|
1122
1133
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb
|
1123
1134
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/envs.rb
|
@@ -1186,6 +1197,7 @@ files:
|
|
1186
1197
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb
|
1187
1198
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb
|
1188
1199
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb
|
1200
|
+
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb
|
1189
1201
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb
|
1190
1202
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb
|
1191
1203
|
- vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch.rb
|
data/lib/avm/configs.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_cli/old_configs_bridge'
|
4
|
-
|
5
|
-
module Avm
|
6
|
-
class << self
|
7
|
-
attr_reader :configs_storage_path
|
8
|
-
|
9
|
-
def configs
|
10
|
-
@configs ||= ::EacCli::OldConfigsBridge.new('avm-tools', configs_options)
|
11
|
-
end
|
12
|
-
|
13
|
-
def configs_file_path
|
14
|
-
configs_storage_path || default_configs_file_path
|
15
|
-
end
|
16
|
-
|
17
|
-
def configs_options
|
18
|
-
configs_storage_path.if_present({}) { |v| { storage_path: v } }
|
19
|
-
end
|
20
|
-
|
21
|
-
def configs_storage_path=(path)
|
22
|
-
@configs_storage_path = path
|
23
|
-
@configs = nil
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|