avm-eac_generic_base0 0.15.2 → 0.16.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: 680c50f070f2c30cdd888148b79a48b22c59c9ce0e9e04fe21cd8ad6bb4d375a
4
- data.tar.gz: 6b31037c67e59316844f77682a6f48066aee314e8b48ea89b3079eae78a35eb8
3
+ metadata.gz: 5b7f5696fed0e59b9974e10ef88818f49ef9ae1074e60b9eb141c93901e2fd6a
4
+ data.tar.gz: 9cbc42e5e3bb5a2cc68a1f973ad4ce11101cfe1adca0ae8cbee6e6c234be390f
5
5
  SHA512:
6
- metadata.gz: c1c9b1d57654826d45bdd4fafb4f18e3526d0805c0408fc40f3377fe627ae4c6d39fc101a4f9b8ee5aa4d8d028cc7dd98f62f6092d0cf397839f15a03628f6b6
7
- data.tar.gz: fc1adb0cef8193ac533d33c738a8ae93e26805b302eca3273275c8094c326258f16c862e50dbec4faca7f021bc413dcca85bfe54e044892d003532a794431290
6
+ metadata.gz: 7e327749e77cd046225e8ea2248c8270bb325f5a94d9c33b3a82e8351b5e0459951c4543f061e013df516680f45c8fc7966a29c687b93b4c043143629234cdac
7
+ data.tar.gz: 5c9687f741c53b0b25e0c999aa5936021536587d193d3f586babfd535eef44d8dc69edd24d59c9557ffbff5b5c58fe0a1a235d8201617db8c0b0f23dfc115565
@@ -5,9 +5,9 @@ module Avm
5
5
  module FileFormats
6
6
  class Base < ::Avm::FileFormats::Base
7
7
  module FileResourceNameHelper
8
- def result_from_patterns(patterns, path, &block)
8
+ def result_from_patterns(patterns, path, &)
9
9
  patterns.lazy.map { |pattern| pattern.to_parser.parse(path.to_path) }
10
- .find(&:present?).if_present(&block)
10
+ .find(&:present?).if_present(&)
11
11
  end
12
12
 
13
13
  def result_from_superclass(path)
@@ -14,15 +14,21 @@ module Avm
14
14
  desc 'Run a Docker container with source mapped.'
15
15
  arg_opt '-c', '--command-arg', 'Arguments for [COMMAND] [ARG...].', optional: true,
16
16
  repeat: true
17
+ bool_opt '-n', '--new', 'Force the creation of a new container.'
17
18
  end
18
19
 
20
+ # @return [void]
19
21
  def run
20
22
  start_banner
21
- docker_container.run_command.system!
23
+ new_container? ? run_container : start_container
22
24
  end
23
25
 
26
+ # @return [void]
24
27
  def start_banner
25
28
  infov 'Image', docker_image
29
+ infov 'Container name', container_name
30
+ infov 'Container exist?', container_exist?
31
+ infov 'New container?', new_container?
26
32
  infov 'Command', ::Shellwords.join(command_args)
27
33
  end
28
34
 
@@ -38,6 +44,22 @@ module Avm
38
44
  end
39
45
  end
40
46
 
47
+ # @return [Boolean]
48
+ memoize def container_exist?
49
+ docker_container.exist?
50
+ end
51
+
52
+ # Name that identifies the container associated with the source, so it can be
53
+ # found and reused on the next run.
54
+ #
55
+ # @return [String]
56
+ def container_name
57
+ [
58
+ self.class.name.parameterize,
59
+ runner_context.call(:subject).path.to_s.parameterize
60
+ ].join('_')
61
+ end
62
+
41
63
  def default_command_args
42
64
  bash_command_args
43
65
  end
@@ -45,13 +67,39 @@ module Avm
45
67
  def docker_container
46
68
  docker_image.container
47
69
  .volume(runner_context.call(:subject).path, CONTAINER_SOURCE_PATH)
48
- .interactive(true).tty(true).command_args(command_args)
70
+ .interactive(true).tty(true).command_args(command_args).name(container_name)
49
71
  end
50
72
 
51
73
  # @return [EacDocker::Images::Base]
52
74
  def docker_image
53
75
  raise_abstract_method __method__
54
76
  end
77
+
78
+ # @return [Boolean]
79
+ def new_container?
80
+ parsed.new? || !container_exist?
81
+ end
82
+
83
+ # Create and run a new container.
84
+ #
85
+ # @return [void]
86
+ def run_container
87
+ if container_exist?
88
+ infom "Remove existing container \"#{container_name}\"..."
89
+ docker_container.remove.execute!
90
+ end
91
+
92
+ infom "Creating container \"#{container_name}\"..."
93
+ docker_container.run_command.system!
94
+ end
95
+
96
+ # Start the existing container associated with the source.
97
+ #
98
+ # @return [void]
99
+ def start_container
100
+ infom "Starting existing container \"#{container_name}\"..."
101
+ docker_container.start_command.system!
102
+ end
55
103
  end
56
104
  end
57
105
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.15.2'
5
+ VERSION = '0.16.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_generic_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-01-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: avm
@@ -16,56 +15,48 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '0.98'
18
+ version: '0.102'
20
19
  - - ">="
21
20
  - !ruby/object:Gem::Version
22
- version: 0.98.2
21
+ version: 0.102.4
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - "~>"
28
27
  - !ruby/object:Gem::Version
29
- version: '0.98'
28
+ version: '0.102'
30
29
  - - ">="
31
30
  - !ruby/object:Gem::Version
32
- version: 0.98.2
31
+ version: 0.102.4
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: eac_ruby_utils
35
34
  requirement: !ruby/object:Gem::Requirement
36
35
  requirements:
37
36
  - - "~>"
38
37
  - !ruby/object:Gem::Version
39
- version: '0.128'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 0.128.6
38
+ version: '0.134'
43
39
  type: :runtime
44
40
  prerelease: false
45
41
  version_requirements: !ruby/object:Gem::Requirement
46
42
  requirements:
47
43
  - - "~>"
48
44
  - !ruby/object:Gem::Version
49
- version: '0.128'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 0.128.6
45
+ version: '0.134'
53
46
  - !ruby/object:Gem::Dependency
54
47
  name: eac_ruby_gem_support
55
48
  requirement: !ruby/object:Gem::Requirement
56
49
  requirements:
57
50
  - - "~>"
58
51
  - !ruby/object:Gem::Version
59
- version: '0.12'
52
+ version: '0.15'
60
53
  type: :development
61
54
  prerelease: false
62
55
  version_requirements: !ruby/object:Gem::Requirement
63
56
  requirements:
64
57
  - - "~>"
65
58
  - !ruby/object:Gem::Version
66
- version: '0.12'
67
- description:
68
- email:
59
+ version: '0.15'
69
60
  executables: []
70
61
  extensions: []
71
62
  extra_rdoc_files: []
@@ -81,10 +72,8 @@ files:
81
72
  - lib/avm/eac_generic_base0/version.rb
82
73
  - locale/en.yml
83
74
  - locale/pt-BR.yml
84
- homepage:
85
75
  licenses: []
86
76
  metadata: {}
87
- post_install_message:
88
77
  rdoc_options: []
89
78
  require_paths:
90
79
  - lib
@@ -92,15 +81,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
81
  requirements:
93
82
  - - ">="
94
83
  - !ruby/object:Gem::Version
95
- version: 2.7.0
84
+ version: '3.2'
96
85
  required_rubygems_version: !ruby/object:Gem::Requirement
97
86
  requirements:
98
87
  - - ">="
99
88
  - !ruby/object:Gem::Version
100
89
  version: '0'
101
90
  requirements: []
102
- rubygems_version: 3.4.19
103
- signing_key:
91
+ rubygems_version: 3.6.9
104
92
  specification_version: 4
105
93
  summary: Put here de description.
106
94
  test_files: []