dry-stack 0.0.74 → 0.0.76

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: 1c09ec9f2621d4f04f4aa4578c6a523a88830721d10d3ec5582f92678fc728cf
4
- data.tar.gz: 9d8871217ff3e0dba94346c916a6f2764ed261c3fbeaae1df884e767bdd6b13c
3
+ metadata.gz: fc66cd52245000ece4ab555e7de7bebfb8bbc430fa874b7a193a98cb1b4252c7
4
+ data.tar.gz: fca08f1524e5108238fa3ed1767caec60b9760a1c8b4c29fb0805cc29faa7645
5
5
  SHA512:
6
- metadata.gz: 86f2a7e6d7ef991952b4b3689ad7b112b27c759d181e357074439dab9f6946d2def17b0c9e95968f47ccb0377cfab7beedb0771b290e1c0855b276d6d138469b
7
- data.tar.gz: 6d3822249f9d87632da48600ced3cbaaabf317d0fe075a3ba3f7ec48163b1830811255a58a3d82fa423575a1a805c3d2a7eb584c7dc680118ae89105fb319d7a
6
+ metadata.gz: 4dc22324c06865377ab541b63793070395df81fd2df72b7f3957482b603b712392436f579f27dfcb776cef9571798a12829c04701c67e88071ab80ef03016984
7
+ data.tar.gz: e339f2530b9529dbe94883bf8ef63757da1e66e05b23c7bbb90b1cb8ae694a4e00062563366ae083d00187c8fe038e432461b0822e4a21b28e7fffefd6bb05c4
@@ -52,7 +52,7 @@ module Dry
52
52
  def command(cmd)= @service[:command] = cmd
53
53
  def entrypoint(cmd)= @service[:entrypoint] = cmd
54
54
  def deploy_label(str)= @service[:deploy][:labels] << str
55
- def config(name, opts)= (@service[:configs] ||= []) << {source: name.to_s }.merge(opts)
55
+ def config(name = nil, opts)= (@service[:configs] ||= []) << {source: name.to_s }.merge(opts)
56
56
  def logging(opts) = (@service[:logging] ||= {}).merge! opts
57
57
  def user(user) = @service[:user] = user # "${UID}:${GID}", "www-data:www-data"
58
58
  def network(names) = (@service[:networks] ||= []) << names
@@ -215,12 +215,32 @@ module Dry
215
215
 
216
216
  service[:logging] ||= @logging[name.to_sym]
217
217
 
218
- service[:configs]&.each do |config|
218
+ service[:volumes]&.map!&.with_index do |volume, index|
219
+ if volume.is_a? Hash
220
+ if (volume.key?(:name) && volume.key?(:source)) || (!volume.key?(:name) && !volume.key?(:source))
221
+ $stderr.puts 'Use either :name or :source in volume declaration as a Hash'
222
+ $stderr.puts ':name will create Volume section automatically'
223
+ raise 'invalid volume declaration'
224
+ end
225
+ if volume.key? :name
226
+ v_name = "#{service_name}-volume-#{index}".to_sym
227
+ compose[:volumes][v_name] ||= {}
228
+ compose[:volumes][v_name].merge! volume.slice(:name, :driver, :driver_opts)
229
+ volume[:type] ||= 'volume'
230
+ volume.except(:name, :driver, :driver_opts).merge source: v_name
231
+ else
232
+ volume
233
+ end
234
+ else
235
+ volume
236
+ end
237
+ end
238
+
239
+ service[:configs]&.each_with_index do |config, index|
240
+ config[:source] = "#{service_name}-config-#{index}" if config[:source].to_s.empty?
219
241
  compose[:configs][config[:source].to_sym] ||= {}
220
242
  compose[:configs][config[:source].to_sym].merge! config.except(:source, :target)
221
- config.delete :file_content
222
- config.delete :file
223
- config.delete :name
243
+ config.replace config.except :file_content, :file, :name
224
244
  end
225
245
  end
226
246
 
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.74'
3
+ VERSION = '0.0.76'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.74
4
+ version: 0.0.76
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-07 00:00:00.000000000 Z
11
+ date: 2024-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake