avm-tools 0.113.3 → 0.114.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/launcher/context.rb +19 -8
- data/lib/avm/tools/runner/app_src/ruby/bundler/incompatible.rb +2 -2
- data/lib/avm/tools/runner/self.rb +2 -2
- data/lib/avm/tools/self.rb +0 -13
- data/lib/avm/tools/version.rb +1 -1
- data/sub/avm/lib/avm/instances/base/auto_values/data.rb +2 -2
- data/sub/avm/lib/avm/instances/base/auto_values/filesystem.rb +6 -8
- data/sub/avm/lib/avm/instances/entry.rb +10 -4
- data/sub/avm/lib/avm/instances/entry_keys.rb +1 -1
- data/sub/avm/lib/avm/self/instance.rb +8 -0
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +0 -1
- data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners/base.rb +2 -0
- data/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +1 -1
- data/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_path_spec.rb +1 -1
- data/sub/avm-eac_rails_base0/spec/spec_helper.rb +1 -5
- data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +1 -1
- data/sub/avm-files/lib/avm/files/version.rb +1 -1
- data/sub/avm-git/avm-git.gemspec +1 -1
- data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +3 -3
- data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +1 -1
- data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +13 -6
- data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +3 -3
- data/sub/avm-git/lib/avm/git/issue/complete/push.rb +15 -9
- data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +2 -2
- data/sub/avm-git/lib/avm/git/issue/complete/test.rb +1 -1
- data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +1 -1
- data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +13 -5
- data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +1 -1
- data/sub/avm-git/lib/avm/git/issue/complete.rb +22 -7
- data/sub/avm-git/lib/avm/git/revision_test.rb +1 -1
- data/sub/avm-git/lib/avm/git/version.rb +1 -1
- data/sub/eac_cli/eac_cli.gemspec +2 -2
- data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +1 -1
- data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +1 -1
- data/sub/eac_cli/lib/eac_cli/config/entry.rb +5 -1
- data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +42 -0
- data/sub/eac_cli/lib/eac_cli/rspec.rb +9 -0
- data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +13 -0
- data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
- data/sub/eac_config/eac_config.gemspec +1 -1
- data/sub/eac_config/lib/eac_config/entry.rb +4 -0
- data/sub/eac_config/lib/eac_config/node_entry.rb +4 -0
- data/sub/eac_config/lib/eac_config/rspec/setup.rb +19 -3
- data/sub/eac_config/lib/eac_config/version.rb +1 -1
- data/sub/eac_fs/lib/eac_fs/cached_download.rb +1 -1
- data/sub/eac_fs/lib/eac_fs/contexts.rb +21 -0
- data/sub/eac_fs/lib/eac_fs/logs/file.rb +4 -0
- data/sub/eac_fs/lib/eac_fs/logs.rb +5 -0
- data/sub/eac_fs/lib/eac_fs/patches/module/fs_cache.rb +9 -4
- data/sub/eac_fs/lib/eac_fs/patches/object/fs_cache.rb +16 -6
- data/sub/eac_fs/lib/eac_fs/{cache.rb → storage_tree.rb} +6 -8
- data/sub/eac_fs/lib/eac_fs/version.rb +1 -1
- data/sub/eac_fs/spec/lib/eac_fs/{cache_spec.rb → storage_tree_spec.rb} +5 -5
- data/sub/eac_git/eac_git.gemspec +1 -1
- data/sub/eac_git/lib/eac_git/local/branch.rb +27 -0
- data/sub/eac_git/lib/eac_git/local/commit.rb +1 -0
- data/sub/eac_git/lib/eac_git/local/remotes.rb +20 -0
- data/sub/eac_git/lib/eac_git/local.rb +18 -0
- data/sub/eac_git/lib/eac_git/version.rb +1 -1
- data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +2 -2
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/application.rb +9 -5
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb +14 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec.rb +9 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +28 -9
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +2 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/to_struct.rb +10 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/if_exist.rb +10 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/readlink_r.rb +11 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/stub_speaker.rb +39 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +7 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +28 -19
- data/sub/eac_cli/lib/eac_cli/old_configs_bridge.rb +0 -39
- data/sub/eac_cli/lib/eac_cli/speaker/_constants.rb +0 -12
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/test_all.rb +0 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ab94e9f5fae951a039dc33fadb807fa8331899a843526fa957beeb05193a8419
|
|
4
|
+
data.tar.gz: ebb72038ffaa5b8c9c37d20e8b7a6de6b6303886665940474c36318804cdc600
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b25329ca5da5c3aeda2bd26b9f2cf91edadfe965e3eba3e891eb590a3b7a9483870b80e45b2e804eb44d56877445c1da00a98b75b9c8feac81fb44165020e21a
|
|
7
|
+
data.tar.gz: bf211cebb15418b176c681020f825e64ba8d12cecd3d2022b3026326fcc3d062e846c763143b75cf17a2d38f7c71b244b4748166deb3cc873fe61eac319afc3b
|
data/lib/avm/launcher/context.rb
CHANGED
|
@@ -8,6 +8,7 @@ require 'avm/launcher/context/instance_discovery'
|
|
|
8
8
|
require 'avm/launcher/context/settings'
|
|
9
9
|
require 'avm/launcher/paths/logical'
|
|
10
10
|
require 'avm/launcher/project'
|
|
11
|
+
require 'avm/tools/self'
|
|
11
12
|
|
|
12
13
|
module Avm
|
|
13
14
|
module Launcher
|
|
@@ -15,10 +16,6 @@ module Avm
|
|
|
15
16
|
include ::EacRubyUtils::SimpleCache
|
|
16
17
|
enable_speaker
|
|
17
18
|
|
|
18
|
-
DEFAULT_PROJECTS_ROOT = '.'
|
|
19
|
-
DEFAULT_SETTINGS_FILE = ::File.join(ENV['HOME'], '.config', 'eac_launcher', 'settings.yml')
|
|
20
|
-
DEFAULT_CACHE_ROOT = ::File.join(ENV['HOME'], '.cache', 'eac_launcher')
|
|
21
|
-
|
|
22
19
|
class << self
|
|
23
20
|
attr_writer :current
|
|
24
21
|
|
|
@@ -34,6 +31,8 @@ module Avm
|
|
|
34
31
|
attr_reader :root, :settings, :cache_root
|
|
35
32
|
attr_accessor :publish_options, :recache, :instance_manager
|
|
36
33
|
|
|
34
|
+
CONFIG_PATH_PREFIX = 'launcher'
|
|
35
|
+
|
|
37
36
|
def initialize(options = {})
|
|
38
37
|
@options = options.with_indifferent_access
|
|
39
38
|
@root = ::Avm::Launcher::Paths::Logical.new(self, nil, build_option(:projects_root), '/')
|
|
@@ -59,15 +58,27 @@ module Avm
|
|
|
59
58
|
private
|
|
60
59
|
|
|
61
60
|
def build_option(key)
|
|
62
|
-
@options[key] ||
|
|
61
|
+
@options[key] || config_option(key) || default_option(key)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def config_option(key)
|
|
65
|
+
::Avm::Self::Instance.default.entry([CONFIG_PATH_PREFIX, key].join('.')).optional_value
|
|
63
66
|
end
|
|
64
67
|
|
|
65
|
-
def
|
|
66
|
-
|
|
68
|
+
def default_cache_root
|
|
69
|
+
::Avm::Tools::Self.application.cache_dir.join('launcher')
|
|
67
70
|
end
|
|
68
71
|
|
|
69
72
|
def default_option(key)
|
|
70
|
-
|
|
73
|
+
send("default_#{key}".underscore)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def default_projects_root
|
|
77
|
+
'.'
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def default_settings_file
|
|
81
|
+
::Avm::Tools::Self.application.config_dir.join('launcher.yaml')
|
|
71
82
|
end
|
|
72
83
|
|
|
73
84
|
def projects_uncached
|
|
@@ -17,7 +17,7 @@ module Avm
|
|
|
17
17
|
|
|
18
18
|
def run
|
|
19
19
|
infov 'Cache path', fs_cache.content_path
|
|
20
|
-
infov 'Cached?', fs_cache.
|
|
20
|
+
infov 'Cached?', fs_cache.stored?
|
|
21
21
|
parser.gems_in_conflict.each do |gem_in_conflict|
|
|
22
22
|
print_gem_in_conflict(gem_in_conflict)
|
|
23
23
|
end
|
|
@@ -31,7 +31,7 @@ module Avm
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def content_path
|
|
34
|
-
fs_cache.write(bundle_update) unless fs_cache.
|
|
34
|
+
fs_cache.write(bundle_update) unless fs_cache.stored? && parsed.last?
|
|
35
35
|
fs_cache.content_path
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'avm/tools/core_ext'
|
|
4
|
-
require 'avm/
|
|
4
|
+
require 'avm/self/instance'
|
|
5
5
|
|
|
6
6
|
module Avm
|
|
7
7
|
module Tools
|
|
@@ -14,7 +14,7 @@ module Avm
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def instance
|
|
17
|
-
::Avm::
|
|
17
|
+
::Avm::Self::Instance.default
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
end
|
data/lib/avm/tools/self.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'eac_cli/old_configs_bridge'
|
|
4
3
|
require 'eac_ruby_base0/application'
|
|
5
4
|
require 'eac_ruby_utils/require_sub'
|
|
6
5
|
require 'avm/instances/base'
|
|
@@ -15,18 +14,6 @@ module Avm
|
|
|
15
14
|
@application ||= ::EacRubyBase0::Application.new(root.to_path)
|
|
16
15
|
end
|
|
17
16
|
|
|
18
|
-
# @return [EacCli::OldConfigsBridge]
|
|
19
|
-
def build_config(path = nil)
|
|
20
|
-
::EacCli::OldConfigsBridge.new(
|
|
21
|
-
application.name,
|
|
22
|
-
path.if_present({}) { |v| { storage_path: v } }
|
|
23
|
-
)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def instance
|
|
27
|
-
@instance ||= ::Avm::Tools::Self::Instance.by_id('avm-tools_self')
|
|
28
|
-
end
|
|
29
|
-
|
|
30
17
|
def root
|
|
31
18
|
::Pathname.new('../../..').expand_path(__dir__)
|
|
32
19
|
end
|
data/lib/avm/tools/version.rb
CHANGED
|
@@ -9,8 +9,8 @@ module Avm
|
|
|
9
9
|
module AutoValues
|
|
10
10
|
module Data
|
|
11
11
|
def auto_data_default_dump_path
|
|
12
|
-
::Avm::Self
|
|
13
|
-
.
|
|
12
|
+
::Avm::Self::Instance
|
|
13
|
+
.default
|
|
14
14
|
.read_entry_optional(::Avm::Self::Instance::EntryKeys::DATA_DEFAULT_PATH)
|
|
15
15
|
.if_present do |v|
|
|
16
16
|
::File.join(
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'avm/instances/entry_keys'
|
|
4
|
+
|
|
3
5
|
module Avm
|
|
4
6
|
module Instances
|
|
5
7
|
class Base
|
|
6
8
|
module AutoValues
|
|
7
9
|
module Filesystem
|
|
8
|
-
FS_PATH_KEY = :fs_path
|
|
9
|
-
|
|
10
10
|
def auto_fs_path
|
|
11
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
12
|
-
|
|
13
|
-
end
|
|
11
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
12
|
+
::Avm::Instances::EntryKeys::FS_PATH) { |v| v + '/' + id }
|
|
14
13
|
end
|
|
15
14
|
|
|
16
15
|
def auto_data_fs_path
|
|
17
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
18
|
-
|
|
19
|
-
end
|
|
16
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID,
|
|
17
|
+
::Avm::Instances::EntryKeys::DATA_FS_PATH) { |v| v + '/' + id }
|
|
20
18
|
end
|
|
21
19
|
|
|
22
20
|
def auto_fs_url
|
|
@@ -27,11 +27,11 @@ module Avm
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def optional_value
|
|
30
|
-
|
|
30
|
+
context_entry.found? ? context_entry.value : auto_value
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
def read
|
|
34
|
-
|
|
33
|
+
def read
|
|
34
|
+
context_entry.value
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def suffix_as_array
|
|
@@ -47,7 +47,13 @@ module Avm
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def write(value)
|
|
50
|
-
|
|
50
|
+
context_entry.value = value
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
private
|
|
54
|
+
|
|
55
|
+
def context_entry
|
|
56
|
+
::EacConfig::Node.context.current.entry(full_path)
|
|
51
57
|
end
|
|
52
58
|
end
|
|
53
59
|
end
|
|
@@ -42,7 +42,7 @@ module Avm
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
{
|
|
45
|
-
'' => %w[fs_path host_id name source_instance_id],
|
|
45
|
+
'' => %w[data_fs_path fs_path host_id name source_instance_id],
|
|
46
46
|
database: %w[id hostname limit name password port system timeout username extra],
|
|
47
47
|
docker: %w[registry],
|
|
48
48
|
mailer: {
|
|
@@ -8,6 +8,14 @@ require 'avm/eac_ubuntu_base0/docker_image'
|
|
|
8
8
|
module Avm
|
|
9
9
|
module Self
|
|
10
10
|
class Instance < ::Avm::Instances::Base
|
|
11
|
+
DEFAULT_INSTANCE_ID = 'avm_self'
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
def default
|
|
15
|
+
@default ||= by_id(DEFAULT_INSTANCE_ID)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
11
19
|
def docker_image_class
|
|
12
20
|
::Avm::Self::DockerImage
|
|
13
21
|
end
|
data/sub/avm/lib/avm/version.rb
CHANGED
|
@@ -15,6 +15,5 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.add_dependency 'avm-eac_rails_base1', '~> 0.1', '>= 0.1.3'
|
|
16
16
|
s.add_dependency 'eac_ruby_utils', '~> 0.80', '>= 0.80.2'
|
|
17
17
|
|
|
18
|
-
s.add_development_dependency 'eac_cli', '~> 0.24', '~> 0.24.1'
|
|
19
18
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.4'
|
|
20
19
|
end
|
|
@@ -12,7 +12,7 @@ RSpec.describe ::Avm::EacRailsBase0::ApachePath do
|
|
|
12
12
|
let(:expected_content) { expect_file.read }
|
|
13
13
|
|
|
14
14
|
before do
|
|
15
|
-
instance.entry(::Avm::Instances::
|
|
15
|
+
instance.entry(::Avm::Instances::EntryKeys::FS_PATH).write('/path/to/stub-app_0')
|
|
16
16
|
instance.entry('web.url').write('http://stubapp.net/stub-app_0')
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -2,8 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
require 'eac_ruby_utils/rspec/default_setup'
|
|
4
4
|
::EacRubyUtils::Rspec.default_setup_create(::File.expand_path('..', __dir__))
|
|
5
|
-
|
|
6
|
-
require 'eac_cli/old_configs_bridge'
|
|
7
|
-
::EacRubyUtils::Rspec.default_setup.stub_eac_config_node do |file|
|
|
8
|
-
::EacCli::OldConfigsBridge.new(file)
|
|
9
|
-
end
|
|
5
|
+
::EacRubyUtils::Rspec.default_setup.stub_eac_config_node
|
data/sub/avm-git/avm-git.gemspec
CHANGED
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
|
14
14
|
|
|
15
15
|
s.add_dependency 'avm-files', '~> 0.1'
|
|
16
|
-
s.add_dependency 'eac_git', '~> 0.
|
|
16
|
+
s.add_dependency 'eac_git', '~> 0.11'
|
|
17
17
|
s.add_dependency 'eac_ruby_utils', '~> 0.76'
|
|
18
18
|
|
|
19
19
|
s.add_development_dependency 'aranha-parsers', '~> 0.8', '>= 0.8.5'
|
|
@@ -15,7 +15,7 @@ module Avm
|
|
|
15
15
|
return [] unless branch_hash && follow_master?
|
|
16
16
|
|
|
17
17
|
interval = remote_master_hash ? "#{remote_master_hash}..#{branch_hash}" : branch_hash
|
|
18
|
-
|
|
18
|
+
launcher_git.execute!('rev-list', interval).each_line.map(&:strip)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def bifurcations_result
|
|
@@ -32,8 +32,8 @@ module Avm
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def commit_parents(commit)
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
launcher_git.execute!('log', '--pretty=%P', '-n', '1', commit).split(' ').map(&:strip)
|
|
36
|
+
.select(&:present?)
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
end
|
|
@@ -12,7 +12,7 @@ module Avm
|
|
|
12
12
|
return ::Avm::Result.error('Unclean workspace') unless clean_workspace?
|
|
13
13
|
|
|
14
14
|
infom 'Checking Git subrepos...'
|
|
15
|
-
r = ::Avm::Git::SubrepoChecks.new(::EacGit::Local.new(
|
|
15
|
+
r = ::Avm::Git::SubrepoChecks.new(::EacGit::Local.new(launcher_git)).add_all_subrepos
|
|
16
16
|
r.check_remote = true
|
|
17
17
|
r.result
|
|
18
18
|
end
|
|
@@ -7,16 +7,21 @@ module Avm
|
|
|
7
7
|
module Issue
|
|
8
8
|
class Complete
|
|
9
9
|
module LocalBranch
|
|
10
|
+
NO_CURRENT_BRANCH_NAME = 'none'
|
|
11
|
+
|
|
12
|
+
# Retrieves the current local branch.
|
|
13
|
+
#
|
|
14
|
+
# @return [EacGit::Local::Branch, nil]
|
|
10
15
|
def branch_uncached
|
|
11
|
-
|
|
16
|
+
eac_git.current_branch
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
def branch_hash_uncached
|
|
15
|
-
|
|
20
|
+
branch.if_present(&:current_commit_id)
|
|
16
21
|
end
|
|
17
22
|
|
|
18
23
|
def branch_name
|
|
19
|
-
branch.
|
|
24
|
+
branch.if_present(NO_CURRENT_BRANCH_NAME, &:name)
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
def branch_name_result
|
|
@@ -38,14 +43,16 @@ module Avm
|
|
|
38
43
|
end
|
|
39
44
|
|
|
40
45
|
def follow_master?
|
|
41
|
-
remote_master_hash ?
|
|
46
|
+
remote_master_hash ? launcher_git.descendant?(branch_hash, remote_master_hash) : true
|
|
42
47
|
end
|
|
43
48
|
|
|
44
49
|
def remove_local_branch
|
|
50
|
+
return unless branch
|
|
51
|
+
|
|
45
52
|
info 'Removendo branch local...'
|
|
46
53
|
bn = branch_name
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
git_execute(['checkout', branch_hash])
|
|
55
|
+
git_execute(['branch', '-D', bn])
|
|
49
56
|
end
|
|
50
57
|
end
|
|
51
58
|
end
|
|
@@ -18,7 +18,7 @@ module Avm
|
|
|
18
18
|
|
|
19
19
|
def delete_tag
|
|
20
20
|
info 'Removendo tag...'
|
|
21
|
-
|
|
21
|
+
git_execute(['tag', '-d', branch_name])
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def tag
|
|
@@ -26,11 +26,11 @@ module Avm
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def tag_hash
|
|
29
|
-
|
|
29
|
+
launcher_git.rev_parse(tag)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def create_tag
|
|
33
|
-
|
|
33
|
+
git_execute(['tag', branch_name, branch_hash])
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
end
|
|
@@ -12,13 +12,7 @@ module Avm
|
|
|
12
12
|
def dry_push_result
|
|
13
13
|
return ::Avm::Result.error('Nothing to push') if pushs.empty?
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
message = if r.fetch(:exit_code).zero?
|
|
17
|
-
'ok'
|
|
18
|
-
else
|
|
19
|
-
r.fetch(:stderr) + "\n#{::Shellwords.join(dry_push_args)}"
|
|
20
|
-
end
|
|
21
|
-
::Avm::Result.success_or_error(r.fetch(:exit_code).zero?, message)
|
|
15
|
+
dry_push_execution_result
|
|
22
16
|
end
|
|
23
17
|
|
|
24
18
|
def push
|
|
@@ -26,7 +20,7 @@ module Avm
|
|
|
26
20
|
info 'PUSH: Nada a enviar'
|
|
27
21
|
else
|
|
28
22
|
info "PUSH: enviando \"#{pushs}\"..."
|
|
29
|
-
|
|
23
|
+
git_execute(%w[push origin] + pushs)
|
|
30
24
|
end
|
|
31
25
|
end
|
|
32
26
|
|
|
@@ -39,7 +33,7 @@ module Avm
|
|
|
39
33
|
end
|
|
40
34
|
|
|
41
35
|
def remove_branch_push
|
|
42
|
-
remote_branch_hash ? ":refs/heads/#{branch}" : nil
|
|
36
|
+
remote_branch_hash ? ":refs/heads/#{branch.name}" : nil
|
|
43
37
|
end
|
|
44
38
|
|
|
45
39
|
def tag_push
|
|
@@ -47,6 +41,18 @@ module Avm
|
|
|
47
41
|
|
|
48
42
|
"#{branch_hash}:#{tag}"
|
|
49
43
|
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def dry_push_execution_result
|
|
48
|
+
r = launcher_git.execute(dry_push_args)
|
|
49
|
+
message = if r.fetch(:exit_code).zero?
|
|
50
|
+
'ok'
|
|
51
|
+
else
|
|
52
|
+
r.fetch(:stderr) + "\n#{::Shellwords.join(dry_push_args)}"
|
|
53
|
+
end
|
|
54
|
+
::Avm::Result.success_or_error(r.fetch(:exit_code).zero?, message)
|
|
55
|
+
end
|
|
50
56
|
end
|
|
51
57
|
end
|
|
52
58
|
end
|
|
@@ -10,7 +10,7 @@ module Avm
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def remote_branch_hash
|
|
13
|
-
remote_hashs["refs/heads/#{branch}"]
|
|
13
|
+
remote_hashs["refs/heads/#{branch.name}"]
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def remote_tag_hash
|
|
@@ -24,7 +24,7 @@ module Avm
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def remote_hashs_uncached
|
|
27
|
-
|
|
27
|
+
launcher_git.remote_hashs(remote_name)
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
end
|
|
@@ -11,6 +11,8 @@ module Avm
|
|
|
11
11
|
enable_simple_cache
|
|
12
12
|
common_constructor :parent, :key, :label
|
|
13
13
|
|
|
14
|
+
SKIPPED_RESULT_MESSAGE = 'skipped'
|
|
15
|
+
|
|
14
16
|
def skip?
|
|
15
17
|
parent.skip_validations.include?(key)
|
|
16
18
|
end
|
|
@@ -18,11 +20,17 @@ module Avm
|
|
|
18
20
|
private
|
|
19
21
|
|
|
20
22
|
def result_uncached
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
skip? ? skipped_result : validation_result
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def skipped_result
|
|
27
|
+
::Avm::Result.neutral(SKIPPED_RESULT_MESSAGE)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def validation_result
|
|
31
|
+
parent.send("#{key}_result")
|
|
32
|
+
rescue ::RuntimeError => e
|
|
33
|
+
::Avm::Result.error("error raised: #{e.message}")
|
|
26
34
|
end
|
|
27
35
|
end
|
|
28
36
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'avm/tools/core_ext'
|
|
4
|
+
require 'eac_git/local'
|
|
4
5
|
|
|
5
6
|
module Avm
|
|
6
7
|
module Git
|
|
@@ -10,14 +11,15 @@ module Avm
|
|
|
10
11
|
enable_simple_cache
|
|
11
12
|
enable_speaker
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
BRANCH_NAME_ISSUE_ID_PATTERN =
|
|
15
|
+
|
|
16
|
+
attr_reader :dir, :skip_validations
|
|
14
17
|
|
|
15
18
|
def initialize(options)
|
|
16
19
|
consumer = ::EacRubyUtils::OptionsConsumer.new(options)
|
|
17
|
-
dir, @skip_validations = consumer.consume_all(:dir, :skip_validations)
|
|
20
|
+
@dir, @skip_validations = consumer.consume_all(:dir, :skip_validations)
|
|
18
21
|
validate_skip_validations
|
|
19
22
|
consumer.validate
|
|
20
|
-
@git = ::Avm::Launcher::Git::Base.new(dir)
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def start_banner
|
|
@@ -35,16 +37,29 @@ module Avm
|
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
def issue_id
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
branch ? issue_id_parser.parse(branch_name) : nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# @return [EacRubyUtils::RegexpParser]
|
|
44
|
+
def issue_id_parser
|
|
45
|
+
/\A#{Regexp.quote('issue_')}(\d+)\z/.to_parser { |m| m[1].to_i }
|
|
40
46
|
end
|
|
41
47
|
|
|
42
48
|
private
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
# @return [EacGit::Local]
|
|
51
|
+
def eac_git_uncached
|
|
52
|
+
::EacGit::Local.new(dir)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def git_execute(args, exit_outputs = {})
|
|
56
|
+
r = launcher_git.execute!(args, exit_outputs: exit_outputs)
|
|
46
57
|
r.is_a?(String) ? r.strip : r
|
|
47
58
|
end
|
|
59
|
+
|
|
60
|
+
def launcher_git_uncached
|
|
61
|
+
::Avm::Launcher::Git::Base.new(dir)
|
|
62
|
+
end
|
|
48
63
|
end
|
|
49
64
|
end
|
|
50
65
|
end
|
data/sub/eac_cli/eac_cli.gemspec
CHANGED
|
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.files = Dir['{lib}/**/*', 'Gemfile']
|
|
14
14
|
|
|
15
15
|
s.add_dependency 'colorize', '~> 0.8.1'
|
|
16
|
-
s.add_dependency 'eac_config', '~> 0.
|
|
17
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
|
16
|
+
s.add_dependency 'eac_config', '~> 0.8'
|
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.83'
|
|
18
18
|
|
|
19
19
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.3'
|
|
20
20
|
end
|