avm-eac_generic_base0 0.2.1 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4af184a7ee762d834515f520ac5feaa6fd9ec234757fabe22dfe0a9587bf3e60
4
- data.tar.gz: cdffc75f564331e4c26fa2b290bb3aabae75f642d02e67be8b6e5185d3880811
3
+ metadata.gz: a6d6a1396364d1442f597be6c8dfbd99c21275ebf3d6611d1979c5fb7320ee2a
4
+ data.tar.gz: 5ca7404e4a63c0691e1fdb3596561bd4cfb3cbe5efc4dc0d0468cfb1ba75499f
5
5
  SHA512:
6
- metadata.gz: 92dd41ed2159254b2d9e68abb4a510f8fa317c37a8b7d508c9753b4ed8a4a7c995d5b90fcb88bd7dbbed734e621dab77b4e3b43ea71f95b161d8557be2dcc874
7
- data.tar.gz: 165a8ebe7fb439542dd7f57c7624056f72cd739c055cca35539ae3bac555631bf246658b601cc3dbda905edfd406fdd7352133ec13a2a61bfc45318990d70498
6
+ metadata.gz: 8ac4509659b53a68bc816a8246ef585e2362156b4a1b24f5eea9bbbef933834e92c064725fb8b2a2f410b94806687102a61c1a9ce77bdc41054ac47ac75754e3
7
+ data.tar.gz: 0d1d068b8d574e464e0a1260be86d606504efa6f34d3cd1af55a2629dcb79f179b9177cabe8b6e47314640aa9a9ced12a934a408d1112ef37c7a63b79da0a519
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_generic_base0/sources/tester'
4
3
  require 'avm/sources/base'
5
4
  require 'eac_ruby_utils/core_ext'
6
5
 
@@ -11,11 +10,6 @@ module Avm
11
10
  require_sub __FILE__, include_modules: true
12
11
  enable_abstract_methods
13
12
 
14
- # @return [Avm::EacGenericBase0::Sources::Tester]
15
- def tester_class
16
- Avm::EacGenericBase0::Sources::Tester
17
- end
18
-
19
13
  def valid?
20
14
  ::Avm::Registry.scms.detect_optional(path).present?
21
15
  end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacGenericBase0
7
+ module Sources
8
+ module Docker
9
+ class Runner
10
+ CONTAINER_SOURCE_PATH = '/app'
11
+
12
+ enable_abstract_methods
13
+ abstract_methods :docker_image
14
+
15
+ runner_with :help do
16
+ desc 'Run a Docker container with source mapped.'
17
+ arg_opt '-c', '--command-arg', 'Arguments for [COMMAND] [ARG...].', optional: true,
18
+ repeat: true
19
+ end
20
+
21
+ def run
22
+ start_banner
23
+ docker_container.run_command.system!
24
+ end
25
+
26
+ def start_banner
27
+ infov 'Image', docker_image
28
+ infov 'Command', ::Shellwords.join(command_args)
29
+ end
30
+
31
+ def bash_command_args
32
+ %w[/bin/bash]
33
+ end
34
+
35
+ def command_args
36
+ if parsed.command_arg.any?
37
+ parsed.command_arg
38
+ else
39
+ default_command_args
40
+ end
41
+ end
42
+
43
+ def default_command_args
44
+ bash_command_args
45
+ end
46
+
47
+ def docker_container
48
+ docker_image.container
49
+ .volume(runner_context.call(:subject).path, CONTAINER_SOURCE_PATH)
50
+ .interactive(true).tty(true).command_args(command_args)
51
+ end
52
+
53
+ # @return [EacDocker::Images::Base]
54
+ def docker_image
55
+ raise_abstract_method __method__
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacGenericBase0
7
+ module Sources
8
+ module Docker
9
+ require_sub __FILE__
10
+ end
11
+ end
12
+ end
13
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.2.1'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_generic_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-07 00:00:00.000000000 Z
11
+ date: 2022-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.19'
19
+ version: '0.28'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.19'
26
+ version: '0.28'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: eac_ruby_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.80'
33
+ version: '0.96'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.80'
40
+ version: '0.96'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: eac_ruby_gem_support
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.4'
47
+ version: 0.5.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.4'
54
+ version: 0.5.1
55
55
  description:
56
56
  email:
57
57
  executables: []
@@ -62,10 +62,11 @@ files:
62
62
  - lib/avm/eac_generic_base0/sources.rb
63
63
  - lib/avm/eac_generic_base0/sources/base.rb
64
64
  - lib/avm/eac_generic_base0/sources/base/version_bump.rb
65
- - lib/avm/eac_generic_base0/sources/tester.rb
65
+ - lib/avm/eac_generic_base0/sources/docker.rb
66
+ - lib/avm/eac_generic_base0/sources/docker/runner.rb
66
67
  - lib/avm/eac_generic_base0/version.rb
67
- - locale/en.yaml
68
- - locale/pt-BR.yaml
68
+ - locale/en.yml
69
+ - locale/pt-BR.yml
69
70
  homepage:
70
71
  licenses: []
71
72
  metadata: {}
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/sources/tester'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacGenericBase0
8
- module Sources
9
- class Tester < ::Avm::Sources::Tester
10
- TEST_COMMAND_CONFIGURATION_KEY = :test_command
11
-
12
- enable_simple_cache
13
-
14
- # @return [EacRubyUtils::Envs::Command, nil]
15
- def test_command
16
- source.read_configuration_as_shell_words(TEST_COMMAND_CONFIGURATION_KEY)
17
- .if_present do |args|
18
- ::EacRubyUtils::Envs.local.command(args).chdir(source.path)
19
- end
20
- end
21
-
22
- # @return [EacFs::Logs]
23
- def logs
24
- @logs ||= ::EacFs::Logs.new.add(:stdout).add(:stderr)
25
- end
26
-
27
- # @return [Avm::Sources::Tests::Result]
28
- def result
29
- @result ||= begin
30
- if test_command.blank?
31
- ::Avm::Sources::Tests::Result::NONEXISTENT
32
- elsif run_test_command
33
- ::Avm::Sources::Tests::Result::SUCESSFUL
34
- else
35
- ::Avm::Sources::Tests::Result::FAILED
36
- end
37
- end
38
- end
39
-
40
- protected
41
-
42
- def run_test_command
43
- execute_command_and_log(test_command)
44
- end
45
-
46
- # @return [true, false]
47
- def execute_command_and_log(command)
48
- r = command.execute
49
- logs[:stdout].write(r[:stdout])
50
- logs[:stderr].write(r[:stderr])
51
- r[:exit_code].zero?
52
- end
53
- end
54
- end
55
- end
56
- end