ehbrs-tools 0.45.1 → 0.46.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: a940e948f84b0bcadb5b041aceba048d0cc00f98c10d477f657653e726b0ea72
4
- data.tar.gz: 8ce4366f746e278d79c781f90262619d2ca3e9f674e13d59a1f05407d57df385
3
+ metadata.gz: af4ca110d8ae0fe4a7d3ec9babaab037b95d092041368a2b44c198a3233e2dcd
4
+ data.tar.gz: 0f0c9571e3009fe0f43a3dd080973152f76a7a2c5ccc88ecf35ac9923818a9ce
5
5
  SHA512:
6
- metadata.gz: 701d53b7971018c0b143b37ad7ae62251524acb7fff15851a50e1daa478968bb6e2fa9340f49b18fcef66f5c5d048251ff1bacdfea58c6cb29affef2f2b9e3a9
7
- data.tar.gz: 2166708a757321a5aa799f91cd462c947c26c4ce73ecf521f4a91678af3c85ed396b547c46452c61c5432f0a65367fa0899fb3a5a5d8215946628ca51ba91b13
6
+ metadata.gz: 2a6da9a5c28abecb0652c9fff402e3c0c1a0e0ecc7d759d636f9264d77e03433d896822041bc20d8ab9963411514330cd8d30d650521d41414a2b298fcebe361
7
+ data.tar.gz: 9819b74f39c4610845554eeece8903431100a2cd7faf4663673ca7c9d5db0906885753a654e2f32bb7490b887371dcbeff7ad96978fd5741633092c227b23fd7
data/Gemfile.lock CHANGED
@@ -1,42 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ehbrs-tools (0.45.1)
5
- avm-tools (~> 0.164)
6
- eac_cli (~> 0.47)
7
- eac_fs (~> 0.20, >= 0.20.2)
8
- eac_ruby_base0 (~> 0.19, >= 0.19.3)
9
- eac_ruby_utils (~> 0.131)
10
- ehbrs_ruby_utils (~> 0.49, >= 0.49.1)
4
+ ehbrs-tools (0.46.0)
5
+ avm-tools (~> 0.164, >= 0.164.1)
6
+ eac_cli (~> 0.47, >= 0.47.2)
7
+ eac_fs (~> 0.20, >= 0.20.3)
8
+ eac_ruby_base0 (~> 0.22)
9
+ eac_ruby_base1 (~> 0.1, >= 0.1.2)
10
+ ehbrs_ruby_utils (~> 0.51)
11
11
  filesize (~> 0.2)
12
12
  os (~> 1.1, >= 1.1.4)
13
13
  telegram-bot-ruby (~> 0.23)
14
14
 
15
- PATH
16
- remote: sub/aranha-parsers
17
- specs:
18
- aranha-parsers (0.29.0)
19
- activesupport (>= 4.0.0)
20
- addressable (~> 2.9)
21
- aranha (~> 0.20)
22
- eac_envs-http (~> 0.7, >= 0.7.1)
23
- eac_ruby_utils (~> 0.131)
24
- nokogiri (~> 1.19, >= 1.19.3)
25
-
26
15
  PATH
27
16
  remote: sub/ehbrs_ruby_utils
28
17
  specs:
29
- ehbrs_ruby_utils (0.49.1)
30
- aranha (~> 0.20)
18
+ ehbrs_ruby_utils (0.51.0)
19
+ aranha (~> 0.20, >= 0.20.1)
31
20
  aranha-parsers (~> 0.29)
32
- aranha-selenium (~> 0.14)
33
- avm (~> 0.100)
21
+ aranha-selenium (~> 0.15)
22
+ avm (~> 0.103)
34
23
  avm-eac_rails_base0 (~> 0.11, >= 0.11.2)
35
- dentaku (~> 3.5, >= 3.5.7)
36
- eac_fs (~> 0.20, >= 0.20.2)
24
+ dentaku (~> 3.5, >= 3.5.8)
25
+ eac_fs (~> 0.20, >= 0.20.3)
37
26
  eac_rest (~> 0.13)
38
- eac_ruby_utils (~> 0.131)
39
- eac_templates (~> 0.8, >= 0.8.3)
27
+ eac_ruby_base1 (~> 0.1, >= 0.1.2)
28
+ eac_templates (~> 0.9)
40
29
  inifile (~> 3.0)
41
30
  srt (~> 0.1, >= 0.1.5)
42
31
  taglib-ruby (~> 1.1, >= 1.1.3)
@@ -45,164 +34,187 @@ PATH
45
34
  GEM
46
35
  remote: https://rubygems.org/
47
36
  specs:
48
- activesupport (6.1.7.10)
49
- concurrent-ruby (~> 1.0, >= 1.0.2)
37
+ activesupport (8.1.4)
38
+ base64
39
+ bigdecimal
40
+ concurrent-ruby (~> 1.0, >= 1.3.1)
41
+ connection_pool (>= 2.2.5)
42
+ drb
50
43
  i18n (>= 1.6, < 2)
44
+ json
45
+ logger (>= 1.4.2)
51
46
  minitest (>= 5.1)
52
- tzinfo (~> 2.0)
53
- zeitwerk (~> 2.3)
47
+ securerandom (>= 0.3)
48
+ tzinfo (~> 2.0, >= 2.0.5)
49
+ uri (>= 0.13.1)
54
50
  addressable (2.9.0)
55
51
  public_suffix (>= 2.0.2, < 8.0)
56
- aranha (0.20.0)
57
- eac_ruby_utils (~> 0.128)
58
- aranha-selenium (0.14.0)
52
+ aranha (0.20.1)
53
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
54
+ aranha-parsers (0.29.0)
55
+ activesupport (>= 4.0.0)
56
+ addressable (~> 2.9)
59
57
  aranha (~> 0.20)
60
- eac_fs (~> 0.20, >= 0.20.1)
61
- eac_ruby_utils (~> 0.130)
62
- eac_templates (~> 0.8, >= 0.8.3)
58
+ eac_envs-http (~> 0.7, >= 0.7.1)
59
+ eac_ruby_utils (~> 0.131)
60
+ nokogiri (~> 1.19, >= 1.19.3)
61
+ aranha-selenium (0.15.0)
62
+ aranha (~> 0.20, >= 0.20.1)
63
+ eac_fs (~> 0.20, >= 0.20.3)
64
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
65
+ eac_templates (~> 0.9)
63
66
  rexml (~> 3.4, >= 3.4.4)
64
- selenium-webdriver (~> 4.43)
67
+ selenium-webdriver (~> 4.49)
65
68
  ast (2.4.3)
66
69
  attr_extras (7.1.0)
67
- avm (0.100.0)
68
- eac_cli (~> 0.46)
70
+ avm (0.103.0)
71
+ eac_cli (~> 0.47, >= 0.47.1)
69
72
  eac_config (~> 0.15)
70
- eac_docker (~> 0.8)
71
- eac_fs (~> 0.20, >= 0.20.1)
72
- eac_ruby_utils (~> 0.130)
73
- eac_templates (~> 0.8, >= 0.8.3)
73
+ eac_docker (~> 0.8, >= 0.8.1)
74
+ eac_fs (~> 0.20, >= 0.20.3)
75
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
76
+ eac_templates (~> 0.9)
74
77
  minitar (~> 0.12, >= 0.12.1)
75
- avm-eac_generic_base0 (0.15.2)
76
- avm (~> 0.98, >= 0.98.2)
77
- eac_ruby_utils (~> 0.128, >= 0.128.6)
78
+ avm-eac_generic_base0 (0.16.1)
79
+ avm (~> 0.103)
80
+ eac_ruby_utils (~> 0.134)
78
81
  avm-eac_postgresql_base0 (0.6.0)
79
82
  avm (~> 0.98, >= 0.98.4)
80
83
  eac_ruby_utils (~> 0.129, >= 0.129.1)
81
84
  avm-eac_rails_base0 (0.11.2)
82
85
  avm-eac_rails_base1 (~> 0.11, >= 0.11.2)
83
86
  eac_ruby_utils (~> 0.129, >= 0.129.1)
84
- avm-eac_rails_base1 (0.12.0)
85
- avm (~> 0.98, >= 0.98.4)
86
- avm-eac_ruby_base1 (~> 0.39)
87
- avm-eac_webapp_base0 (~> 0.22)
88
- eac_ruby_utils (~> 0.130)
89
- avm-eac_ruby_base1 (0.41.1)
90
- aranha-parsers (~> 0.27)
91
- avm (~> 0.100)
92
- avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
93
- eac_envs-http (~> 0.7, >= 0.7.1)
94
- eac_ruby_utils (~> 0.131)
95
- avm-eac_ubuntu_base0 (0.7.0)
96
- avm (~> 0.98, >= 0.98.2)
97
- eac_ruby_utils (~> 0.128, >= 0.128.6)
98
- eac_templates (~> 0.8, >= 0.8.3)
99
- avm-eac_webapp_base0 (0.22.1)
100
- avm (~> 0.98, >= 0.98.5)
101
- avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
87
+ avm-eac_rails_base1 (0.12.1)
88
+ avm (~> 0.102, >= 0.102.3)
89
+ avm-eac_ruby_base1 (~> 0.43, >= 0.43.2)
90
+ avm-eac_webapp_base0 (~> 0.22, >= 0.22.3)
91
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
92
+ avm-eac_ruby_base1 (0.45.2)
93
+ aranha-parsers (~> 0.29)
94
+ avm (~> 0.103)
95
+ avm-eac_generic_base0 (~> 0.16, >= 0.16.1)
96
+ eac_envs-http (~> 0.7, >= 0.7.2)
97
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
98
+ avm-eac_ubuntu_base0 (0.7.2)
99
+ avm (~> 0.102, >= 0.102.4)
100
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
101
+ eac_templates (~> 0.9)
102
+ avm-eac_webapp_base0 (0.23.0)
103
+ avm (~> 0.103)
104
+ avm-eac_generic_base0 (~> 0.16, >= 0.16.1)
102
105
  avm-eac_postgresql_base0 (~> 0.6)
103
- avm-eac_ubuntu_base0 (~> 0.7)
104
- eac_ruby_utils (~> 0.130)
106
+ avm-eac_ubuntu_base0 (~> 0.7, >= 0.7.2)
107
+ eac_ruby_base1 (~> 0.1, >= 0.1.2)
108
+ eac_ruby_utils (~> 0.136)
105
109
  htmlbeautifier (~> 1.4, >= 1.4.3)
106
- avm-tools (0.164.0)
107
- avm (~> 0.98, >= 0.98.5)
110
+ avm-tools (0.164.1)
111
+ avm (~> 0.102, >= 0.102.2)
108
112
  eac_ruby_base0 (~> 0.19, >= 0.19.3)
109
113
  axiom-types (0.1.1)
110
114
  descendants_tracker (~> 0.0.4)
111
115
  ice_nine (~> 0.11.0)
112
116
  thread_safe (~> 0.3, >= 0.3.1)
113
117
  base64 (0.3.0)
114
- bigdecimal (4.1.2)
118
+ bigdecimal (4.1.3)
115
119
  clipboard (2.0.0)
116
120
  coercible (1.0.0)
117
121
  descendants_tracker (~> 0.0.1)
118
122
  colorize (0.8.1)
119
- concurrent-ruby (1.3.6)
123
+ concurrent-ruby (1.3.8)
124
+ connection_pool (3.0.2)
120
125
  content-type (0.0.2)
121
126
  parslet (~> 2.0)
122
- dentaku (3.5.7)
127
+ csv (3.3.6)
128
+ dentaku (3.5.8)
123
129
  bigdecimal
124
130
  concurrent-ruby
131
+ tsort
125
132
  descendants_tracker (0.0.4)
126
133
  thread_safe (~> 0.3, >= 0.3.1)
127
134
  diff-lcs (1.6.2)
128
135
  drb (2.2.3)
129
136
  dry-inflector (1.3.1)
130
- eac_cli (0.47.0)
137
+ eac_cli (0.47.2)
131
138
  clipboard (~> 2.0)
132
139
  colorize (~> 0.8, >= 0.8.1)
133
- eac_config (~> 0.15)
134
- eac_ruby_utils (~> 0.131)
140
+ csv (~> 3.3, >= 3.3.6)
141
+ eac_config (~> 0.15, >= 0.15.2)
142
+ eac_ruby_utils (~> 0.134)
135
143
  tty-table (~> 0.12)
136
- eac_config (0.15.0)
137
- addressable (~> 2.8, >= 2.8.7)
138
- eac_ruby_utils (~> 0.127)
139
- eac_docker (0.8.0)
140
- eac_ruby_utils (~> 0.128, >= 0.128.2)
141
- eac_templates (~> 0.8, >= 0.8.1)
142
- eac_envs-http (0.7.1)
143
- eac_fs (~> 0.20)
144
- eac_ruby_utils (~> 0.129)
145
- faraday (~> 2.14, >= 2.14.1)
144
+ eac_config (0.15.2)
145
+ addressable (~> 2.9)
146
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
147
+ eac_docker (0.9.0)
148
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
149
+ eac_templates (~> 0.9)
150
+ eac_envs-http (0.7.2)
151
+ eac_fs (~> 0.20, >= 0.20.2)
152
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
153
+ faraday (~> 2.14, >= 2.14.3)
146
154
  faraday-follow_redirects (~> 0.5)
147
- faraday-gzip (~> 0.1)
155
+ faraday-gzip (~> 3.1)
148
156
  faraday-multipart (~> 1.2)
149
157
  faraday-retry (~> 2.4)
150
- random-port (~> 0.7, >= 0.7.6)
151
- webrick
152
- eac_fs (0.20.2)
158
+ random-port (~> 0.8)
159
+ webrick (~> 1.9, >= 1.9.2)
160
+ eac_fs (0.20.3)
153
161
  content-type (~> 0.0, >= 0.0.2)
154
- eac_ruby_utils (~> 0.131)
162
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
155
163
  filesize (~> 0.2)
156
164
  ruby-filemagic (~> 0.7, >= 0.7.3)
157
165
  eac_rest (0.13.0)
158
166
  eac_envs-http (~> 0.7, >= 0.7.1)
159
167
  eac_fs (~> 0.20, >= 0.20.1)
160
168
  eac_ruby_utils (~> 0.130)
161
- eac_ruby_base0 (0.19.3)
162
- avm-eac_ruby_base1 (~> 0.39)
163
- eac_cli (~> 0.45)
164
- eac_fs (~> 0.20)
165
- eac_ruby_utils (~> 0.129)
166
- eac_ruby_gem_support (0.13.0)
167
- eac_ruby_utils (~> 0.131)
169
+ eac_ruby_base0 (0.22.0)
170
+ avm-eac_ruby_base1 (~> 0.45)
171
+ eac_cli (~> 0.47, >= 0.47.1)
172
+ eac_fs (~> 0.20, >= 0.20.3)
173
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
174
+ eac_ruby_base1 (0.1.2)
175
+ eac_ruby_utils (~> 0.135)
176
+ eac_ruby_gem_support (0.15.0)
177
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
168
178
  rspec (~> 3.13, >= 3.13.2)
169
- rubocop (~> 1.86, >= 1.86.1)
170
- rubocop-rails (~> 2.34, >= 2.34.3)
171
- rubocop-rspec (~> 3.9)
179
+ rubocop (~> 1.88, >= 1.88.2)
180
+ rubocop-rails (~> 2.36)
181
+ rubocop-rspec (~> 3.10, >= 3.10.2)
172
182
  super_diff (~> 0.19)
173
- eac_ruby_utils (0.131.0)
174
- activesupport (>= 4, < 7)
183
+ eac_ruby_utils (0.136.0)
184
+ activesupport (>= 6.1.7.10)
175
185
  addressable (~> 2.9)
176
186
  bundler
187
+ json (< 3)
177
188
  memoized (~> 1.1, >= 1.1.3)
178
189
  net-ssh (~> 4.2)
179
- zeitwerk (~> 2.7, >= 2.7.5)
180
- eac_templates (0.8.3)
190
+ ostruct
191
+ zeitwerk (~> 2.8, >= 2.8.3)
192
+ eac_templates (0.9.0)
181
193
  eac_config (~> 0.15)
182
- eac_ruby_utils (~> 0.128, >= 0.128.5)
183
- faraday (2.14.2)
184
- faraday-net_http (>= 2.0, < 3.5)
194
+ eac_ruby_base1 (~> 0.1, >= 0.1.1)
195
+ faraday (2.15.0)
196
+ faraday-net_http (>= 2.0, < 3.6)
185
197
  json
186
198
  logger
187
199
  faraday-follow_redirects (0.5.0)
188
200
  faraday (>= 1, < 3)
189
- faraday-gzip (0.1.0)
190
- faraday (>= 1.0)
191
- zlib (~> 2.1)
201
+ faraday-gzip (3.2.0)
202
+ faraday (>= 2.0, < 3)
203
+ zlib (~> 3.0)
192
204
  faraday-multipart (1.2.0)
193
205
  multipart-post (~> 2.0)
194
- faraday-net_http (3.4.3)
206
+ faraday-net_http (3.5.0)
195
207
  net-http (~> 0.5)
196
208
  faraday-retry (2.4.0)
197
209
  faraday (~> 2.0)
198
210
  filesize (0.2.0)
199
211
  htmlbeautifier (1.4.3)
200
- i18n (1.14.8)
212
+ i18n (1.15.2)
201
213
  concurrent-ruby (~> 1.0)
202
214
  ice_nine (0.11.2)
203
215
  inifile (3.0.0)
204
- json (2.19.5)
205
- language_server-protocol (3.17.0.5)
216
+ json (2.21.2)
217
+ language_server-protocol (3.17.0.6)
206
218
  lint_roller (1.1.0)
207
219
  logger (1.7.0)
208
220
  memoized (1.1.3)
@@ -211,15 +223,19 @@ GEM
211
223
  drb (~> 2.0)
212
224
  prism (~> 1.5)
213
225
  multipart-post (2.4.1)
214
- net-http (0.9.1)
226
+ net-http (0.10.0)
227
+ net-protocol (>= 0.3.0)
215
228
  uri (>= 0.11.1)
229
+ net-protocol (0.4.0)
230
+ timeout
216
231
  net-ssh (4.2.0)
217
- nokogiri (1.19.3-x86_64-linux-gnu)
232
+ nokogiri (1.19.4-x86_64-linux-gnu)
218
233
  racc (~> 1.4)
219
234
  optimist (3.2.1)
220
235
  os (1.1.4)
221
- parallel (1.28.0)
222
- parser (3.3.11.1)
236
+ ostruct (0.6.3)
237
+ parallel (2.3.0)
238
+ parser (3.3.13.0)
223
239
  ast (~> 2.4.1)
224
240
  racc
225
241
  parslet (2.0.0)
@@ -230,11 +246,11 @@ GEM
230
246
  prism (1.9.0)
231
247
  public_suffix (7.0.5)
232
248
  racc (1.8.1)
233
- rack (3.2.6)
249
+ rack (3.2.7)
234
250
  rainbow (3.1.1)
235
- random-port (0.8.0)
251
+ random-port (0.8.2)
236
252
  tago (~> 0.0)
237
- regexp_parser (2.12.0)
253
+ regexp_parser (2.13.1)
238
254
  rexml (3.4.4)
239
255
  rspec (3.13.2)
240
256
  rspec-core (~> 3.13.0)
@@ -249,36 +265,37 @@ GEM
249
265
  diff-lcs (>= 1.2.0, < 2.0)
250
266
  rspec-support (~> 3.13.0)
251
267
  rspec-support (3.13.7)
252
- rubocop (1.86.2)
253
- json (~> 2.3)
268
+ rubocop (1.92.1)
269
+ json (>= 2.3)
254
270
  language_server-protocol (~> 3.17.0.2)
255
271
  lint_roller (~> 1.1.0)
256
272
  parallel (>= 1.10)
257
273
  parser (>= 3.3.0.2)
258
274
  rainbow (>= 2.2.2, < 4.0)
259
- regexp_parser (>= 2.9.3, < 3.0)
275
+ regexp_parser (>= 2.11.3, < 3.0)
260
276
  rubocop-ast (>= 1.49.0, < 2.0)
261
277
  ruby-progressbar (~> 1.7)
262
278
  unicode-display_width (>= 2.4.0, < 4.0)
263
- rubocop-ast (1.49.1)
279
+ rubocop-ast (1.50.0)
264
280
  parser (>= 3.3.7.2)
265
281
  prism (~> 1.7)
266
- rubocop-rails (2.35.2)
282
+ rubocop-rails (2.38.0)
267
283
  activesupport (>= 4.2.0)
268
284
  lint_roller (~> 1.1)
269
285
  rack (>= 1.1)
270
- rubocop (>= 1.75.0, < 2.0)
286
+ rubocop (>= 1.89.0, < 2.0)
271
287
  rubocop-ast (>= 1.44.0, < 2.0)
272
- rubocop-rspec (3.9.0)
288
+ rubocop-rspec (3.10.2)
273
289
  lint_roller (~> 1.1)
274
- rubocop (~> 1.81)
290
+ regexp_parser (>= 2.0)
291
+ rubocop (~> 1.86, >= 1.86.2)
275
292
  ruby-filemagic (0.7.3)
276
293
  ruby-progressbar (1.13.0)
277
- rubyzip (3.3.0)
278
- selenium-webdriver (4.44.0)
294
+ rubyzip (3.7.0)
295
+ securerandom (0.4.1)
296
+ selenium-webdriver (4.51.0)
279
297
  base64 (~> 0.2)
280
298
  logger (~> 1.4)
281
- rexml (~> 3.2, >= 3.2.5)
282
299
  rubyzip (>= 1.2.2, < 4.0)
283
300
  websocket (~> 1.0)
284
301
  srt (0.1.5)
@@ -299,6 +316,8 @@ GEM
299
316
  faraday-multipart (~> 1.0)
300
317
  virtus (~> 2.0)
301
318
  thread_safe (0.3.6)
319
+ timeout (0.6.1)
320
+ tsort (0.2.0)
302
321
  tty-color (0.6.0)
303
322
  tty-screen (0.8.2)
304
323
  tty-table (0.12.0)
@@ -312,22 +331,21 @@ GEM
312
331
  eac_ruby_utils (~> 0.129)
313
332
  unicode-display_width (2.6.0)
314
333
  unicode_utils (1.4.0)
315
- uri (1.1.1)
334
+ uri (1.1.2)
316
335
  virtus (2.0.0)
317
336
  axiom-types (~> 0.1)
318
337
  coercible (~> 1.0)
319
338
  descendants_tracker (~> 0.0, >= 0.0.3)
320
339
  webrick (1.9.2)
321
340
  websocket (1.2.11)
322
- zeitwerk (2.8.2)
323
- zlib (2.1.1)
341
+ zeitwerk (2.8.3)
342
+ zlib (3.2.4)
324
343
 
325
344
  PLATFORMS
326
345
  x86_64-linux-gnu
327
346
 
328
347
  DEPENDENCIES
329
- aranha-parsers!
330
- eac_ruby_gem_support (~> 0.13)
348
+ eac_ruby_gem_support (~> 0.15)
331
349
  ehbrs-tools!
332
350
  ehbrs_ruby_utils!
333
351
 
@@ -5,57 +5,143 @@ module Ehbrs
5
5
  class Runner
6
6
  class Finances
7
7
  class BbBrowser
8
+ CONTAINER_ENV_FORMAT = '{{range .Config.Env}}{{println .}}{{end}}'
9
+ DEFAULT_CONTAINER_NAME = 'ehbrs-tools-bb-browser'
10
+ DEFAULT_DOCKER_COMMAND = 'podman'
11
+ DOWNLOADS_CONTAINER_PATH = '/downloads'
12
+ NOVNC_ADDRESS = '127.0.0.1'
13
+ NOVNC_CONTAINER_PORT = 6080
14
+ NOVNC_HOST_PORT = 6080
15
+ PODMAN_RUN_EXTRA_ARGS = %w[--userns=keep-id --user 0].freeze
16
+ SHM_SIZE = '2g'
17
+ VNC_PASSWORD_LENGTH = 8
18
+
8
19
  runner_with :help do
9
20
  desc 'Bankline para Banco do Brasil com módulo de segurança.'
21
+ arg_opt '-n', '--container-name', 'Nome do contêiner.',
22
+ default: DEFAULT_CONTAINER_NAME
10
23
  end
11
24
 
12
25
  def run
13
- infov 'Docker run arguments', ::Shellwords.join(docker_container.run_command_args)
14
- infov 'System result', docker_container.run_command.system
26
+ setup_docker_command
27
+ infov 'Container name', parsed.container_name
28
+ infov 'Browser URL', browser_url
29
+ open_browser_when_ready
30
+ infov 'System result', container_command.system
15
31
  end
16
32
 
17
33
  private
18
34
 
19
- def docker_image_uncached
20
- ::EhbrsRubyUtils::Finances::BbBrowser::DockerImage.create
35
+ # @return [String]
36
+ memoize def browser_url
37
+ "http://#{NOVNC_ADDRESS}:#{NOVNC_HOST_PORT}/vnc.html?autoconnect=1&resize=remote" \
38
+ "&password=#{vnc_password}"
21
39
  end
22
40
 
23
- def docker_container_uncached
24
- r = docker_image.container
25
- .temporary(true).interactive(true).tty(true)
26
- .command_arg('seg.bb.com.br')
27
- %w[capabilities environment_variables volumes].inject(r) do |a, e|
28
- send("docker_container_#{e}", a)
41
+ # @return [EacRubyUtils::Envs::Command]
42
+ def container_command
43
+ if container_exist?
44
+ docker_container.start_command
45
+ else
46
+ docker_container.env('VNC_PASSWORD', vnc_password)
47
+ .run_command(docker_run_extra_args)
29
48
  end
30
49
  end
31
50
 
32
- def docker_container_capabilities(container)
33
- %w[CAP_AUDIT_WRITE CAP_SYS_PTRACE].inject(container) { |a, e| a.capability(e) }
51
+ # @return [Hash<String, String>]
52
+ def container_env
53
+ ::EacDocker::Executables.docker
54
+ .command('container', 'inspect', '--format', CONTAINER_ENV_FORMAT,
55
+ parsed.container_name)
56
+ .execute!.lines.filter_map { |line| line.chomp.split('=', 2).presence }.to_h
57
+ end
58
+
59
+ # @return [Boolean]
60
+ memoize def container_exist?
61
+ docker_container.exist?
62
+ end
63
+
64
+ # @return [EacDocker::Container]
65
+ memoize def docker_container
66
+ r = docker_image.container.name(parsed.container_name).interactive(true).tty(true)
67
+ %w[environment_variables volumes].inject(r) do |a, e|
68
+ send("docker_container_#{e}", a)
69
+ end
34
70
  end
35
71
 
72
+ # @param container [EacDocker::Container]
73
+ # @return [EacDocker::Container]
36
74
  def docker_container_environment_variables(container)
37
75
  {
38
- 'USER_UID' => user_id,
39
- 'USER_GID' => group_id
76
+ 'USER_GID' => group_id,
77
+ 'USER_UID' => user_id
40
78
  }.inject(container) { |a, e| a.env(e[0], e[1]) }
41
79
  end
42
80
 
81
+ # @param container [EacDocker::Container]
82
+ # @return [EacDocker::Container]
43
83
  def docker_container_volumes(container)
44
- {
45
- ::File.join(Dir.home, 'Downloads') => '/home/user/Downloads',
46
- ::File.join(Dir.home, '.Xauthority') => '/home/user/.Xauthority:ro',
47
- '/tmp/.X11-unix' => '/tmp/.X11-unix:ro',
48
- '/etc/machine-id' => '/etc/machine-id:ro'
49
- }.inject(container) { |a, e| a.volume(e[0], e[1]) }
84
+ container.volume(::File.join(Dir.home, 'Downloads'), DOWNLOADS_CONTAINER_PATH)
50
85
  end
51
86
 
52
- def user_id
53
- ::EacRubyUtils::Envs.local.command('id', '-u').execute!.strip
87
+ # @return [EhbrsRubyUtils::Finances::BbBrowser::DockerImage]
88
+ memoize def docker_image
89
+ ::EhbrsRubyUtils::Finances::BbBrowser::DockerImage.create
54
90
  end
55
91
 
92
+ # @return [Array<String>]
93
+ def docker_run_extra_args
94
+ ['--init', '--shm-size', SHM_SIZE, '--publish',
95
+ "#{NOVNC_ADDRESS}:#{NOVNC_HOST_PORT}:#{NOVNC_CONTAINER_PORT}"] +
96
+ (podman? ? PODMAN_RUN_EXTRA_ARGS : [])
97
+ end
98
+
99
+ # @return [String]
56
100
  def group_id
57
101
  ::EacRubyUtils::Envs.local.command('id', '-g').execute!.strip
58
102
  end
103
+
104
+ # @return [Boolean]
105
+ def novnc_ready?
106
+ ::Net::HTTP.get_response(::URI.parse(browser_url)).is_a?(::Net::HTTPSuccess)
107
+ rescue ::SystemCallError, ::IOError
108
+ false
109
+ end
110
+
111
+ # @return [void]
112
+ def open_browser
113
+ ::EacRubyUtils::Envs.local.command('xdg-open', browser_url).execute
114
+ end
115
+
116
+ # @return [Thread]
117
+ def open_browser_when_ready
118
+ ::Thread.new do
119
+ sleep 1 until novnc_ready?
120
+ open_browser
121
+ end
122
+ end
123
+
124
+ # @return [Boolean]
125
+ memoize def podman?
126
+ ::EacDocker::Executables.docker.command('--version').execute!.downcase.include?('podman')
127
+ end
128
+
129
+ # @return [void]
130
+ def setup_docker_command
131
+ ENV[::EacDocker::Executables.docker.executable_args_envvar] ||= DEFAULT_DOCKER_COMMAND
132
+ end
133
+
134
+ # @return [String]
135
+ def user_id
136
+ ::EacRubyUtils::Envs.local.command('id', '-u').execute!.strip
137
+ end
138
+
139
+ # @return [String]
140
+ memoize def vnc_password
141
+ return container_env.fetch('VNC_PASSWORD') if container_exist?
142
+
143
+ ::SecureRandom.alphanumeric(VNC_PASSWORD_LENGTH)
144
+ end
59
145
  end
60
146
  end
61
147
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ehbrs
4
4
  module Tools
5
- VERSION = '0.45.1'
5
+ VERSION = '0.46.0'
6
6
  end
7
7
  end
data/lib/ehbrs/tools.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__
3
+ require 'eac_ruby_base1'
4
+ EacRubyBase1::RootModuleSetup.perform __FILE__ do
5
+ require 'avm/tools'
6
+ require 'eac_cli'
7
+ require 'eac_fs'
8
+ require 'eac_ruby_base0'
9
+ require 'ehbrs_ruby_utils'
10
+ end
5
11
 
6
12
  module Ehbrs
7
13
  module Tools
8
14
  include ::Ehbrs::Tools::Application
9
15
  end
10
16
  end
11
-
12
- require 'avm/tools'
13
- require 'eac_cli'
14
- require 'eac_fs'
15
- require 'eac_ruby_base0'
16
- require 'ehbrs_ruby_utils'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehbrs-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.45.1
4
+ version: 0.46.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-05-25 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-tools
@@ -17,6 +16,9 @@ dependencies:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
18
  version: '0.164'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 0.164.1
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +26,9 @@ dependencies:
24
26
  - - "~>"
25
27
  - !ruby/object:Gem::Version
26
28
  version: '0.164'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.164.1
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: eac_cli
29
34
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +36,9 @@ dependencies:
31
36
  - - "~>"
32
37
  - !ruby/object:Gem::Version
33
38
  version: '0.47'
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 0.47.2
34
42
  type: :runtime
35
43
  prerelease: false
36
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +46,9 @@ dependencies:
38
46
  - - "~>"
39
47
  - !ruby/object:Gem::Version
40
48
  version: '0.47'
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 0.47.2
41
52
  - !ruby/object:Gem::Dependency
42
53
  name: eac_fs
43
54
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +58,7 @@ dependencies:
47
58
  version: '0.20'
48
59
  - - ">="
49
60
  - !ruby/object:Gem::Version
50
- version: 0.20.2
61
+ version: 0.20.3
51
62
  type: :runtime
52
63
  prerelease: false
53
64
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,61 +68,55 @@ dependencies:
57
68
  version: '0.20'
58
69
  - - ">="
59
70
  - !ruby/object:Gem::Version
60
- version: 0.20.2
71
+ version: 0.20.3
61
72
  - !ruby/object:Gem::Dependency
62
73
  name: eac_ruby_base0
63
74
  requirement: !ruby/object:Gem::Requirement
64
75
  requirements:
65
76
  - - "~>"
66
77
  - !ruby/object:Gem::Version
67
- version: '0.19'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.19.3
78
+ version: '0.22'
71
79
  type: :runtime
72
80
  prerelease: false
73
81
  version_requirements: !ruby/object:Gem::Requirement
74
82
  requirements:
75
83
  - - "~>"
76
84
  - !ruby/object:Gem::Version
77
- version: '0.19'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.19.3
85
+ version: '0.22'
81
86
  - !ruby/object:Gem::Dependency
82
- name: eac_ruby_utils
87
+ name: eac_ruby_base1
83
88
  requirement: !ruby/object:Gem::Requirement
84
89
  requirements:
85
90
  - - "~>"
86
91
  - !ruby/object:Gem::Version
87
- version: '0.131'
92
+ version: '0.1'
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.1.2
88
96
  type: :runtime
89
97
  prerelease: false
90
98
  version_requirements: !ruby/object:Gem::Requirement
91
99
  requirements:
92
100
  - - "~>"
93
101
  - !ruby/object:Gem::Version
94
- version: '0.131'
102
+ version: '0.1'
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 0.1.2
95
106
  - !ruby/object:Gem::Dependency
96
107
  name: ehbrs_ruby_utils
97
108
  requirement: !ruby/object:Gem::Requirement
98
109
  requirements:
99
110
  - - "~>"
100
111
  - !ruby/object:Gem::Version
101
- version: '0.49'
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: 0.49.1
112
+ version: '0.51'
105
113
  type: :runtime
106
114
  prerelease: false
107
115
  version_requirements: !ruby/object:Gem::Requirement
108
116
  requirements:
109
117
  - - "~>"
110
118
  - !ruby/object:Gem::Version
111
- version: '0.49'
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: 0.49.1
119
+ version: '0.51'
115
120
  - !ruby/object:Gem::Dependency
116
121
  name: filesize
117
122
  requirement: !ruby/object:Gem::Requirement
@@ -166,16 +171,14 @@ dependencies:
166
171
  requirements:
167
172
  - - "~>"
168
173
  - !ruby/object:Gem::Version
169
- version: '0.13'
174
+ version: '0.15'
170
175
  type: :development
171
176
  prerelease: false
172
177
  version_requirements: !ruby/object:Gem::Requirement
173
178
  requirements:
174
179
  - - "~>"
175
180
  - !ruby/object:Gem::Version
176
- version: '0.13'
177
- description:
178
- email:
181
+ version: '0.15'
179
182
  executables:
180
183
  - ehbrs
181
184
  extensions: []
@@ -256,10 +259,8 @@ files:
256
259
  - template/ehbrs/cooking_book/build/index_page/inner.html.erb
257
260
  - template/ehbrs/cooking_book/build/recipe_page/inner.html.erb
258
261
  - template/ehbrs/cooking_book/build/recipe_page/part.html.erb
259
- homepage:
260
262
  licenses: []
261
263
  metadata: {}
262
- post_install_message:
263
264
  rdoc_options: []
264
265
  require_paths:
265
266
  - lib
@@ -274,8 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
275
  - !ruby/object:Gem::Version
275
276
  version: '0'
276
277
  requirements: []
277
- rubygems_version: 3.4.19
278
- signing_key:
278
+ rubygems_version: 3.6.9
279
279
  specification_version: 4
280
280
  summary: Tools for EHB/RS.
281
281
  test_files: []