avm-eac_generic_base0 0.15.3 → 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: 2c578995b1a2bb2abc0a387b27bf49795c138388f7cc759b48ff21e417dc2c6a
4
- data.tar.gz: de513f4da0ddbb22ecd805ef354fc44d9ea5f5313d7413933c878544f433d007
3
+ metadata.gz: 5b7f5696fed0e59b9974e10ef88818f49ef9ae1074e60b9eb141c93901e2fd6a
4
+ data.tar.gz: 9cbc42e5e3bb5a2cc68a1f973ad4ce11101cfe1adca0ae8cbee6e6c234be390f
5
5
  SHA512:
6
- metadata.gz: d24e444284af3dc174ba334b9219c21032a316b76c9538848aaa1f8428fe70de1c2e0ee8e60046ccc74ebf7bb9b154a35d4b66422d4cf18635bf790f07ddcec4
7
- data.tar.gz: a5a9653ec432ffb96cdbf7c05884e477e39223ae4f1392c12dd7a0c797fbec7f3b3ffd524ed38385a06da181a838a8e04cdf2d0e335556b258dee18444d4e86a
6
+ metadata.gz: 7e327749e77cd046225e8ea2248c8270bb325f5a94d9c33b3a82e8351b5e0459951c4543f061e013df516680f45c8fc7966a29c687b93b4c043143629234cdac
7
+ data.tar.gz: 5c9687f741c53b0b25e0c999aa5936021536587d193d3f586babfd535eef44d8dc69edd24d59c9557ffbff5b5c58fe0a1a235d8201617db8c0b0f23dfc115565
@@ -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.3'
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.3
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-07-05 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,44 +15,48 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '0.100'
18
+ version: '0.102'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 0.102.4
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
24
26
  - - "~>"
25
27
  - !ruby/object:Gem::Version
26
- version: '0.100'
28
+ version: '0.102'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.102.4
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: eac_ruby_utils
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - "~>"
32
37
  - !ruby/object:Gem::Version
33
- version: '0.131'
38
+ version: '0.134'
34
39
  type: :runtime
35
40
  prerelease: false
36
41
  version_requirements: !ruby/object:Gem::Requirement
37
42
  requirements:
38
43
  - - "~>"
39
44
  - !ruby/object:Gem::Version
40
- version: '0.131'
45
+ version: '0.134'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: eac_ruby_gem_support
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
50
  - - "~>"
46
51
  - !ruby/object:Gem::Version
47
- version: '0.13'
52
+ version: '0.15'
48
53
  type: :development
49
54
  prerelease: false
50
55
  version_requirements: !ruby/object:Gem::Requirement
51
56
  requirements:
52
57
  - - "~>"
53
58
  - !ruby/object:Gem::Version
54
- version: '0.13'
55
- description:
56
- email:
59
+ version: '0.15'
57
60
  executables: []
58
61
  extensions: []
59
62
  extra_rdoc_files: []
@@ -69,10 +72,8 @@ files:
69
72
  - lib/avm/eac_generic_base0/version.rb
70
73
  - locale/en.yml
71
74
  - locale/pt-BR.yml
72
- homepage:
73
75
  licenses: []
74
76
  metadata: {}
75
- post_install_message:
76
77
  rdoc_options: []
77
78
  require_paths:
78
79
  - lib
@@ -87,8 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
88
  - !ruby/object:Gem::Version
88
89
  version: '0'
89
90
  requirements: []
90
- rubygems_version: 3.4.19
91
- signing_key:
91
+ rubygems_version: 3.6.9
92
92
  specification_version: 4
93
93
  summary: Put here de description.
94
94
  test_files: []