avm-tools 0.57.0 → 0.61.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avm/local_projects.rb +9 -0
- data/lib/avm/local_projects/instance.rb +35 -0
- data/lib/avm/local_projects/jobs/update.rb +29 -0
- data/lib/avm/projects.rb +9 -0
- data/lib/avm/projects/stereotype.rb +62 -0
- data/lib/avm/projects/stereotypes.rb +20 -0
- data/lib/avm/projects/stereotypes/git.rb +25 -0
- data/lib/avm/projects/stereotypes/git/local_project_mixin.rb +19 -0
- data/lib/avm/projects/stereotypes/git/publish.rb +15 -0
- data/lib/avm/projects/stereotypes/git/warp.rb +27 -0
- data/lib/avm/projects/stereotypes/git_subrepo.rb +34 -0
- data/lib/avm/projects/stereotypes/git_subrepo/publish.rb +14 -0
- data/lib/avm/projects/stereotypes/git_subrepo/warp.rb +87 -0
- data/lib/avm/projects/stereotypes/git_subtree.rb +51 -0
- data/lib/avm/projects/stereotypes/git_subtree/publish.rb +12 -0
- data/lib/avm/projects/stereotypes/git_subtree/warp.rb +29 -0
- data/lib/avm/projects/stereotypes/rails_application.rb +23 -0
- data/lib/avm/projects/stereotypes/redmine_plugin.rb +23 -0
- data/lib/avm/projects/stereotypes/ruby_gem.rb +30 -0
- data/lib/avm/projects/stereotypes/ruby_gem/local_project_mixin.rb +19 -0
- data/lib/avm/projects/stereotypes/ruby_gem/publish.rb +129 -0
- data/lib/avm/projects/stereotypes/ruby_gem/update.rb +59 -0
- data/lib/avm/tools/runner/git/issue.rb +43 -4
- data/lib/avm/tools/runner/launcher.rb +10 -2
- data/lib/avm/tools/runner/launcher/instances.rb +45 -0
- data/lib/avm/tools/runner/launcher/projects.rb +50 -0
- data/lib/avm/tools/runner/launcher/publish.rb +65 -0
- data/lib/avm/tools/runner/local_project.rb +32 -0
- data/lib/avm/tools/runner/local_project/info.rb +25 -0
- data/lib/avm/tools/runner/local_project/update.rb +26 -0
- data/lib/avm/tools/version.rb +1 -1
- data/lib/eac_launcher.rb +1 -2
- data/lib/eac_launcher/context/instance_manager.rb +1 -0
- data/lib/eac_launcher/git/base/dirty_files.rb +5 -14
- data/lib/eac_launcher/git/publish_base.rb +1 -0
- data/lib/eac_launcher/git/sub_warp_base.rb +1 -1
- data/lib/eac_launcher/git/warp_base.rb +2 -2
- data/lib/eac_launcher/instances/base.rb +2 -2
- data/lib/eac_launcher/instances/runner_helper.rb +1 -1
- data/lib/eac_launcher/paths/logical.rb +2 -2
- data/vendor/eac_docker/Gemfile +5 -0
- data/vendor/eac_docker/eac_docker.gemspec +18 -0
- data/vendor/eac_docker/lib/eac_docker.rb +7 -0
- data/vendor/eac_docker/lib/eac_docker/container.rb +74 -0
- data/vendor/eac_docker/lib/eac_docker/executables.rb +18 -0
- data/vendor/eac_docker/lib/eac_docker/images.rb +9 -0
- data/vendor/eac_docker/lib/eac_docker/images/base.rb +14 -0
- data/vendor/eac_docker/lib/eac_docker/images/coded.rb +39 -0
- data/vendor/eac_docker/lib/eac_docker/images/named.rb +30 -0
- data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +26 -0
- data/vendor/eac_docker/lib/eac_docker/registry.rb +17 -0
- data/vendor/eac_docker/lib/eac_docker/rspec.rb +17 -0
- data/vendor/eac_docker/lib/eac_docker/version.rb +5 -0
- data/vendor/eac_docker/spec/lib/eac_docker/executables_spec.rb +9 -0
- data/vendor/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +12 -0
- data/vendor/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +1 -0
- data/vendor/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +17 -0
- data/vendor/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +1 -0
- data/vendor/eac_docker/spec/rubocop_spec.rb +7 -0
- data/vendor/eac_docker/spec/spec_helper.rb +103 -0
- data/vendor/eac_git/lib/eac_git/local.rb +1 -1
- data/vendor/eac_git/lib/eac_git/local/dirty_files.rb +38 -0
- data/vendor/eac_git/lib/eac_git/version.rb +1 -1
- data/vendor/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -1
- data/vendor/eac_ruby_gems_utils/LICENCE +16 -674
- data/vendor/eac_ruby_gems_utils/eac_ruby_gems_utils.gemspec +10 -2
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +2 -1
- data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +31 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb +1 -1
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb +12 -9
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/dasho_options.rb +53 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/identity_file.rb +25 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/quiet.rb +24 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb +34 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/immutable/array_accessor.rb +4 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/immutable/hash_accessor.rb +4 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +5 -0
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +8 -8
- data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +81 -27
- data/lib/eac_launcher/runner.rb +0 -21
- data/lib/eac_launcher/runner/instances.rb +0 -41
- data/lib/eac_launcher/runner/projects.rb +0 -46
- data/lib/eac_launcher/runner/publish.rb +0 -59
- data/lib/eac_launcher/stereotype.rb +0 -52
- data/lib/eac_launcher/stereotypes.rb +0 -14
- data/lib/eac_launcher/stereotypes/git.rb +0 -21
- data/lib/eac_launcher/stereotypes/git/publish.rb +0 -13
- data/lib/eac_launcher/stereotypes/git/warp.rb +0 -25
- data/lib/eac_launcher/stereotypes/git_subrepo.rb +0 -30
- data/lib/eac_launcher/stereotypes/git_subrepo/publish.rb +0 -12
- data/lib/eac_launcher/stereotypes/git_subrepo/warp.rb +0 -85
- data/lib/eac_launcher/stereotypes/git_subtree.rb +0 -47
- data/lib/eac_launcher/stereotypes/git_subtree/publish.rb +0 -10
- data/lib/eac_launcher/stereotypes/git_subtree/warp.rb +0 -27
- data/lib/eac_launcher/stereotypes/rails.rb +0 -21
- data/lib/eac_launcher/stereotypes/redmine_plugin.rb +0 -21
- data/lib/eac_launcher/stereotypes/ruby_gem.rb +0 -27
- data/lib/eac_launcher/stereotypes/ruby_gem/publish.rb +0 -127
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module Projects
|
5
|
+
module Stereotypes
|
6
|
+
class GitSubtree
|
7
|
+
class Warp < ::EacLauncher::Git::WarpBase
|
8
|
+
include ::EacLauncher::Git::SubWarpBase
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def current_ref
|
13
|
+
instance.cache_key("git_subtree.parent.#{cache_git.git.object('HEAD').sha}") do
|
14
|
+
cache_git.subtree_split(to_parent_git_path)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def source_instance
|
19
|
+
parent_instance
|
20
|
+
end
|
21
|
+
|
22
|
+
def source_remote_name
|
23
|
+
instance.project_name
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/projects/stereotype'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Projects
|
7
|
+
module Stereotypes
|
8
|
+
class RailsApplication
|
9
|
+
include Avm::Projects::Stereotype
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def match?(path)
|
13
|
+
File.exist?(path.real.subpath('config.ru')) && path.real.basename != 'dummy'
|
14
|
+
end
|
15
|
+
|
16
|
+
def color
|
17
|
+
:magenta
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/projects/stereotype'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Projects
|
7
|
+
module Stereotypes
|
8
|
+
class RedminePlugin
|
9
|
+
include Avm::Projects::Stereotype
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def match?(path)
|
13
|
+
File.exist?(path.real.subpath('init.rb'))
|
14
|
+
end
|
15
|
+
|
16
|
+
def color
|
17
|
+
:light_magenta
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/projects/stereotype'
|
4
|
+
require 'eac_launcher/ruby/gem/specification'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Projects
|
9
|
+
module Stereotypes
|
10
|
+
class RubyGem
|
11
|
+
require_sub __FILE__
|
12
|
+
include Avm::Projects::Stereotype
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def match?(path)
|
16
|
+
Dir.glob(File.join(path.real, '*.gemspec')).any?
|
17
|
+
end
|
18
|
+
|
19
|
+
def color
|
20
|
+
:red
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_gemspec(gemspec_file)
|
24
|
+
::EacLauncher::Ruby::Gem::Specification.new(gemspec_file)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gems_utils/gem'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Projects
|
8
|
+
module Stereotypes
|
9
|
+
class RubyGem
|
10
|
+
module LocalProjectMixin
|
11
|
+
# @return [EacRubyGemsUtils::Gem]
|
12
|
+
def ruby_gem
|
13
|
+
@ruby_gem ||= ::EacRubyGemsUtils::Gem.new(path)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'curb'
|
4
|
+
require 'json'
|
5
|
+
require 'eac_ruby_utils/simple_cache'
|
6
|
+
require 'rubygems'
|
7
|
+
require 'eac_ruby_utils/console/speaker'
|
8
|
+
require 'eac_launcher/publish/base'
|
9
|
+
require 'eac_launcher/publish/check_result'
|
10
|
+
require 'eac_launcher/ruby/gem'
|
11
|
+
|
12
|
+
module Avm
|
13
|
+
module Projects
|
14
|
+
module Stereotypes
|
15
|
+
class RubyGem
|
16
|
+
class Publish < ::EacLauncher::Publish::Base
|
17
|
+
include ::EacRubyUtils::SimpleCache
|
18
|
+
include ::EacRubyUtils::Console::Speaker
|
19
|
+
|
20
|
+
protected
|
21
|
+
|
22
|
+
def internal_check
|
23
|
+
gem_published? ? internal_check_gem_published : internal_check_gem_unpublished
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def internal_check_gem_published
|
29
|
+
if version_published?
|
30
|
+
outdated_version? ? outdated_version_check_result : version_published_check_result
|
31
|
+
else
|
32
|
+
version_unpublished_check_result
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def internal_check_gem_unpublished
|
37
|
+
if new_gem_allowed?
|
38
|
+
version_unpublished_check_result
|
39
|
+
else
|
40
|
+
new_gem_disallowed_check_result
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def new_gem_disallowed_check_result
|
45
|
+
::EacLauncher::Publish::CheckResult.blocked(
|
46
|
+
"#{gem_spec.full_name} does not exist in RubyGems"
|
47
|
+
)
|
48
|
+
end
|
49
|
+
|
50
|
+
def version_published_check_result
|
51
|
+
::EacLauncher::Publish::CheckResult.updated("#{gem_spec.full_name} already pushed")
|
52
|
+
end
|
53
|
+
|
54
|
+
def outdated_version_check_result
|
55
|
+
::EacLauncher::Publish::CheckResult.outdated(
|
56
|
+
"#{gem_spec.full_name} is outdated (Max: #{gem_version_max})"
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
def version_unpublished_check_result
|
61
|
+
::EacLauncher::Publish::CheckResult.pending("#{gem_spec.full_name} not found " \
|
62
|
+
'in RubyGems')
|
63
|
+
end
|
64
|
+
|
65
|
+
def source_uncached
|
66
|
+
instance.warped
|
67
|
+
end
|
68
|
+
|
69
|
+
def gem_spec_uncached
|
70
|
+
::Avm::Projects::Stereotypes::RubyGem.load_gemspec(gemspec)
|
71
|
+
end
|
72
|
+
|
73
|
+
def gem_build_uncached
|
74
|
+
::EacLauncher::Ruby::Gem::Build.new(source)
|
75
|
+
end
|
76
|
+
|
77
|
+
def publish
|
78
|
+
gem_build.build
|
79
|
+
push_gem
|
80
|
+
ensure
|
81
|
+
gem_build.close
|
82
|
+
end
|
83
|
+
|
84
|
+
def new_gem_allowed?
|
85
|
+
::EacLauncher::Context.current.publish_options[:new]
|
86
|
+
end
|
87
|
+
|
88
|
+
def gem_published?
|
89
|
+
gem_versions.any?
|
90
|
+
end
|
91
|
+
|
92
|
+
def version_published?
|
93
|
+
gem_versions.any? { |v| v['number'] == gem_spec.version }
|
94
|
+
end
|
95
|
+
|
96
|
+
def outdated_version?
|
97
|
+
gem_version_max.present? && ::Gem::Version.new(gem_spec.version) < gem_version_max
|
98
|
+
end
|
99
|
+
|
100
|
+
def gem_versions_uncached
|
101
|
+
http = Curl.get("https://rubygems.org/api/v1/versions/#{gem_spec.name}.json")
|
102
|
+
return JSON.parse!(http.body_str) if /\A2/ =~ http.status
|
103
|
+
return [] if /\A4/ =~ http.status
|
104
|
+
|
105
|
+
raise "#{http} code error: #{http.status}"
|
106
|
+
end
|
107
|
+
|
108
|
+
def gem_version_max_uncached
|
109
|
+
gem_versions.map { |v| ::Gem::Version.new(v['number']) }.max
|
110
|
+
end
|
111
|
+
|
112
|
+
def push_gem
|
113
|
+
info("Pushing gem #{gem_spec}...")
|
114
|
+
command = ['gem', 'push', gem_build.output_file]
|
115
|
+
unless ::EacLauncher::Context.current.publish_options[:confirm]
|
116
|
+
command = %w[echo] + command + %w[(Dry-run)]
|
117
|
+
end
|
118
|
+
EacRubyUtils::Envs.local.command(command).system
|
119
|
+
info('Pushed!')
|
120
|
+
end
|
121
|
+
|
122
|
+
def gemspec_uncached
|
123
|
+
source.find_file_with_extension('.gemspec')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Projects
|
7
|
+
module Stereotypes
|
8
|
+
class RubyGem
|
9
|
+
class Update
|
10
|
+
enable_console_speaker
|
11
|
+
common_constructor :instance
|
12
|
+
|
13
|
+
def run
|
14
|
+
gemfile_lock_checkout
|
15
|
+
bundle_update
|
16
|
+
gemfile_lock_commit
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def bundle_update
|
22
|
+
infom 'Running "bundle update"...'
|
23
|
+
instance.ruby_gem.bundle('update').execute!
|
24
|
+
infom 'Running "bundle install"...'
|
25
|
+
instance.ruby_gem.bundle('install').execute!
|
26
|
+
end
|
27
|
+
|
28
|
+
def gemfile_lock_checkout
|
29
|
+
return unless instance.respond_to?(:git_repo)
|
30
|
+
|
31
|
+
infom 'Checkouting Gemfile.lock...'
|
32
|
+
instance.git_repo.command('checkout', '--',
|
33
|
+
instance.ruby_gem.gemfile_lock_path.to_path).execute!
|
34
|
+
end
|
35
|
+
|
36
|
+
def gemfile_lock_commit
|
37
|
+
return unless instance.respond_to?(:git_repo)
|
38
|
+
|
39
|
+
if gemfile_lock_changed?
|
40
|
+
infom 'Commiting Gemfile.lock...'
|
41
|
+
instance.git_repo.command('commit', '-m', gemfile_lock_commit_message, '--',
|
42
|
+
instance.ruby_gem.gemfile_lock_path).execute!
|
43
|
+
else
|
44
|
+
infom 'Gemfile.lock did not change'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def gemfile_lock_commit_message
|
49
|
+
'Todas as gems: atualiza.'
|
50
|
+
end
|
51
|
+
|
52
|
+
def gemfile_lock_changed?
|
53
|
+
instance.git_repo.dirty_file?(instance.ruby_gem.gemfile_lock_path)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -9,6 +9,7 @@ module Avm
|
|
9
9
|
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
10
10
|
class Git < ::EacRubyUtils::Console::DocoptRunner
|
11
11
|
class Issue < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
enable_simple_cache
|
12
13
|
include ::EacRubyUtils::Console::Speaker
|
13
14
|
|
14
15
|
DOC = <<~DOCOPT
|
@@ -20,6 +21,8 @@ module Avm
|
|
20
21
|
|
21
22
|
Options:
|
22
23
|
-h --help Show this screen.
|
24
|
+
-f --uncomplete-unfail Do not exit with error if issue is not completed
|
25
|
+
or is invalid.
|
23
26
|
-s --skip-validations=<validations> Does not validate conditions on <validations>
|
24
27
|
(Comma separated value).
|
25
28
|
-y --yes Does not ask for user confirmation.
|
@@ -28,11 +31,30 @@ module Avm
|
|
28
31
|
%%VALIDATIONS%%
|
29
32
|
DOCOPT
|
30
33
|
|
31
|
-
|
32
|
-
|
34
|
+
UNCOMPLETE_MESSAGE =
|
35
|
+
|
36
|
+
def run
|
37
|
+
banner
|
38
|
+
return unless validate
|
39
|
+
|
40
|
+
run_complete if options.fetch('complete')
|
41
|
+
success('Done!')
|
42
|
+
end
|
43
|
+
|
44
|
+
def banner
|
33
45
|
complete.start_banner
|
34
|
-
|
35
|
-
|
46
|
+
end
|
47
|
+
|
48
|
+
def validate
|
49
|
+
return true if complete.valid?
|
50
|
+
|
51
|
+
uncomplete_message('Some validation did not pass')
|
52
|
+
end
|
53
|
+
|
54
|
+
def run_complete
|
55
|
+
return complete.run if confirm?
|
56
|
+
|
57
|
+
uncomplete_message('Issue was not completed')
|
36
58
|
end
|
37
59
|
|
38
60
|
def doc
|
@@ -41,6 +63,10 @@ module Avm
|
|
41
63
|
|
42
64
|
private
|
43
65
|
|
66
|
+
def complete_uncached
|
67
|
+
::Avm::Git::Issue::Complete.new(git_complete_issue_options)
|
68
|
+
end
|
69
|
+
|
44
70
|
def confirm?
|
45
71
|
options.fetch('--yes') || request_input('Confirm issue completion?', bool: true)
|
46
72
|
end
|
@@ -56,6 +82,19 @@ module Avm
|
|
56
82
|
def doc_validations_list
|
57
83
|
::Avm::Git::Issue::Complete::VALIDATIONS.keys.map { |k| " * #{k}" }.join("\n")
|
58
84
|
end
|
85
|
+
|
86
|
+
def uncomplete_unfail?
|
87
|
+
options.fetch('--uncomplete-unfail')
|
88
|
+
end
|
89
|
+
|
90
|
+
def uncomplete_message(message)
|
91
|
+
if uncomplete_unfail?
|
92
|
+
warn(message)
|
93
|
+
else
|
94
|
+
fatal_error(message)
|
95
|
+
end
|
96
|
+
false
|
97
|
+
end
|
59
98
|
end
|
60
99
|
end
|
61
100
|
end
|
@@ -1,11 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'eac_cli/default_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
4
5
|
|
5
6
|
module Avm
|
6
7
|
module Tools
|
7
8
|
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
8
|
-
class Launcher < ::
|
9
|
+
class Launcher < ::EacRubyUtils::Console::DocoptRunner
|
10
|
+
require_sub __FILE__
|
11
|
+
include ::EacCli::DefaultRunner
|
12
|
+
|
13
|
+
runner_definition do
|
14
|
+
desc 'Utilities to deploy applications and libraries.'
|
15
|
+
subcommands
|
16
|
+
end
|
9
17
|
end
|
10
18
|
end
|
11
19
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_launcher/instances/runner_helper'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Tools
|
7
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
8
|
+
class Launcher < ::EacRubyUtils::Console::DocoptRunner
|
9
|
+
class Instances < ::EacLauncher::Instances::RunnerHelper
|
10
|
+
DOC = <<~DOCOPT
|
11
|
+
Mostra informações sobre instâncias.
|
12
|
+
|
13
|
+
Usage:
|
14
|
+
__PROGRAM__ [options] [<instance_path>...]
|
15
|
+
__PROGRAM__ -h | --help
|
16
|
+
|
17
|
+
Options:
|
18
|
+
-h --help Show this screen.
|
19
|
+
--all Get all instances.
|
20
|
+
--recache Rewrite instances cache.
|
21
|
+
|
22
|
+
DOCOPT
|
23
|
+
|
24
|
+
def run
|
25
|
+
::EacLauncher::Context.current.recache = options['--recache']
|
26
|
+
instances.each { |i| show_instance(i) }
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def show_instance(instance)
|
32
|
+
puts instance_label(instance)
|
33
|
+
infov(' * Parent', (instance.parent ? instance_label(instance.parent) : '-'))
|
34
|
+
infov(' * Git current revision', instance.options.git_current_revision)
|
35
|
+
infov(' * Git publish remote', instance.options.git_publish_remote)
|
36
|
+
end
|
37
|
+
|
38
|
+
def instance_path
|
39
|
+
options['<instance_path>']
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|