avm-tools 0.113.5 → 0.114.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.
- checksums.yaml +4 -4
- data/lib/avm/launcher/context.rb +19 -8
- data/lib/avm/launcher/git/publish_base.rb +2 -0
- data/lib/avm/tools/runner/app_src/ruby/bundler/incompatible.rb +2 -2
- data/lib/avm/tools/version.rb +1 -1
- data/{lib → sub/avm/lib}/avm/launcher/errors/base.rb +0 -0
- data/{lib → sub/avm/lib}/avm/launcher/errors/non_project.rb +0 -0
- data/{lib → sub/avm/lib}/avm/launcher/paths/real.rb +0 -0
- data/{lib → sub/avm/lib}/avm/launcher/publish/check_result.rb +0 -0
- data/sub/avm/lib/avm/version.rb +1 -1
- 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-files/lib/avm/files/formatter/formats/generic_plain.rb +2 -2
- 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.rb +4 -0
- data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +2 -4
- data/sub/eac_cli/lib/eac_cli/speaker.rb +1 -2
- 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 +8 -0
- data/sub/eac_config/lib/eac_config/version.rb +1 -1
- data/sub/eac_fs/lib/eac_fs/cached_download.rb +3 -3
- data/sub/eac_fs/lib/eac_fs/contexts.rb +21 -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/runner.rb +28 -9
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +2 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +21 -3
- 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/object/to_uri.rb +15 -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 +24 -11
- 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: 2c54ac1c77f2c1db81cb6e2fa45e97ff5bd9ffad83054e33d8baeb94ff682dea
|
|
4
|
+
data.tar.gz: 842806c80c5fa0fa93f1b6207f498831e833a94147ad9015e2717ebf9e3ec01b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7d026169d9ce0ef808fb38cad55a307eabdd023f7585dd42a6d61e6aa66ca1b7cb203a75aeaa25675e24c4267564dbc4d423dba6902be83d279b3234f6514459
|
|
7
|
+
data.tar.gz: ebc64d8a3e11ab4eee57147b797b2f69fa7816be26d8621383822d1180f7f6ea8c4d9570d19ef21dbb844c25aa41ee3ef4cca0a48efcb30483114d092978810a
|
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
|
|
data/lib/avm/tools/version.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/sub/avm/lib/avm/version.rb
CHANGED
|
@@ -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
|
|
|
@@ -7,8 +7,8 @@ module Avm
|
|
|
7
7
|
class Formatter
|
|
8
8
|
module Formats
|
|
9
9
|
class GenericPlain < ::Avm::Files::Formatter::Formats::Base
|
|
10
|
-
VALID_BASENAMES = %w[*.bat *.css.coffee *.java *.js *.rb *.scss *.sql *.tex
|
|
11
|
-
*.yaml].freeze
|
|
10
|
+
VALID_BASENAMES = %w[*.asm *.bat *.css.coffee *.java *.js *.rb *.s *.scss *.sql *.tex
|
|
11
|
+
*.url *.yml *.yaml].freeze
|
|
12
12
|
|
|
13
13
|
VALID_TYPES = %w[plain x-shellscript].freeze
|
|
14
14
|
|
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
|
|
@@ -24,10 +24,8 @@ module EacCli
|
|
|
24
24
|
def disable_speaker_input_request
|
|
25
25
|
::RSpec.configure do |config|
|
|
26
26
|
config.around do |example|
|
|
27
|
-
::EacRubyUtils::Speaker
|
|
28
|
-
::EacCli::Speaker.new(
|
|
29
|
-
in_in: FailIfRequestInput.new)
|
|
30
|
-
) { example.run }
|
|
27
|
+
::EacRubyUtils::Speaker
|
|
28
|
+
.context.on(::EacCli::Speaker.new(in_in: FailIfRequestInput.new)) { example.run }
|
|
31
29
|
end
|
|
32
30
|
end
|
|
33
31
|
end
|
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
|
14
14
|
|
|
15
15
|
s.add_dependency 'addressable'
|
|
16
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
|
16
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.83'
|
|
17
17
|
|
|
18
18
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.3'
|
|
19
19
|
end
|
|
@@ -29,6 +29,14 @@ module EacConfig
|
|
|
29
29
|
::EacConfig::EnvvarsNode.new.load_path.entry
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
# Wraps a RSpec example in a EacConfig node using a alternative file.
|
|
33
|
+
#
|
|
34
|
+
# @param target_example [RSpec::Core::ExampleGroup] The example to wrap. If not provided,
|
|
35
|
+
# it is applied to all examples.
|
|
36
|
+
# @param target_file [Pathname] The file used by the EacConfig node. If not provided, a
|
|
37
|
+
# temporary file is used.
|
|
38
|
+
# @param node_builder [Proc] Should return the desired EacConfig node. If not provided, a
|
|
39
|
+
# EacConfig::YamlFileNode is created.
|
|
32
40
|
def stub_eac_config_node(target_example = nil, target_file = nil, &node_builder)
|
|
33
41
|
parent_self = self
|
|
34
42
|
(target_example || rspec_config).around do |example|
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
require 'eac_fs/patches'
|
|
4
4
|
require 'eac_ruby_utils/fs/temp'
|
|
5
5
|
|
|
6
|
-
module
|
|
6
|
+
module EacFs
|
|
7
7
|
class CachedDownload
|
|
8
8
|
attr_reader :url, :fs_cache
|
|
9
9
|
|
|
10
10
|
def initialize(url, parent_fs_cache = nil)
|
|
11
11
|
@url = url
|
|
12
|
-
@fs_cache = (parent_fs_cache || fs_cache).child(url.parameterize)
|
|
12
|
+
@fs_cache = (parent_fs_cache || fs_cache).child(url.to_s.parameterize)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def assert
|
|
16
|
-
download unless fs_cache.
|
|
16
|
+
download unless fs_cache.stored?
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def download
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
require 'eac_ruby_utils/context'
|
|
5
|
+
|
|
6
|
+
module EacFs
|
|
7
|
+
class Contexts
|
|
8
|
+
TYPES = %i[cache config data].freeze
|
|
9
|
+
|
|
10
|
+
class << self
|
|
11
|
+
TYPES.each do |type|
|
|
12
|
+
class_eval <<~CODE, __FILE__, __LINE__ + 1
|
|
13
|
+
# @return [EacRubyUtils::Context<EacFs::StorageTree>]
|
|
14
|
+
def #{type}
|
|
15
|
+
@#{type} ||= ::EacRubyUtils::Context.new
|
|
16
|
+
end
|
|
17
|
+
CODE
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|