avm-eac_generic_base0 0.2.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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