dry-stack 0.0.42 → 0.0.44

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: 714c20df33f88d95128a5dc1d4b0126a880542b937c059f702b823c0fe27dc55
4
- data.tar.gz: 2d40875d2d0a06ca8ad7fe1dc9987d369cb0d9a4e425f15d24b15c8dcd37f98b
3
+ metadata.gz: bd8ebff38b6413a5f834283868607fbf5c106de227afde3a4844df7c5e4e2077
4
+ data.tar.gz: 948814b4f3d71a0895478551ba9cbdb14efcdec255d0fca2c5f9519e05acc265
5
5
  SHA512:
6
- metadata.gz: 37303510f5a7573811b8256feb12341c2d7dd99a8b24b241291452b2022805a279b3743e8648bc824a2239167b9fe7ef2de09cb905601e38e07bd244aa606e66
7
- data.tar.gz: 1c1278f09fb97c632c4f6912a110ff879727cef83a76fc6c3d5aa4569278ebc188af1361a4df399c41d039f135a57c5727fb0e7081637510182a45e52ad2ce6c
6
+ metadata.gz: 5a873346eff868b06029d9f51d1f9bbe3f9adcfac5b07b5fc93d592a2be3c097c43a740eb5cbce7a9d00e8faba0d8d637dadc13dc1665ba7f565d2a6f8a1766a
7
+ data.tar.gz: c8b6ef222321e5e7b1eb48c740422f93cf15ddfe38b1bc44ced0fa1429684de3f07e8ac9b428187285d715bb939f15246073536694a7495d38ff3e9f6e75f31d
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'yaml'
3
3
  require 'optparse'
4
+ require 'digest'
4
5
 
5
6
  module Dry
6
7
 
@@ -18,6 +19,7 @@ module Dry
18
19
  def command(cmd)= @service[:command] = cmd
19
20
  def entrypoint(cmd)= @service[:entrypoint] = cmd
20
21
  def deploy_label(str)= @service[:deploy][:labels] << str
22
+ def config(name, opts)= (@service[:configs] ||= []) << {source: name.to_s }.merge(opts)
21
23
  end
22
24
 
23
25
  class Stack
@@ -44,6 +46,7 @@ module Dry
44
46
  @ingress = {}
45
47
  @deploy = {}
46
48
  @labels = {}
49
+ @configs = {}
47
50
  end
48
51
 
49
52
  def stringify(obj)
@@ -85,6 +88,7 @@ module Dry
85
88
  services: YAML.load(@services.to_yaml),
86
89
  volumes: YAML.load(@volumes.to_yaml),
87
90
  networks: YAML.load(@networks.to_yaml),
91
+ configs: YAML.load(@configs.to_yaml)
88
92
  }
89
93
 
90
94
  if @ingress.any?
@@ -161,7 +165,18 @@ module Dry
161
165
  service[:ports] = pp_i&.zip(service[:ports] || pp_i)&.map { _1.join ':' }
162
166
  service[:ports] = (service[:ports] || []) + pp_s unless pp_s.nil?
163
167
 
164
- service[:environment].transform_values!{ !!_1 == _1 ? _1.to_s : _1 } # false | true to string
168
+ service[:environment].transform_values! { !!_1 == _1 ? _1.to_s : _1 } # (false|true) to string
169
+ end
170
+
171
+ compose[:configs].update(compose[:configs]) do |name, config|
172
+ if config[:file_content]
173
+ md5 = Digest::MD5.hexdigest config[:file_content]
174
+ fname = "./#{@name}.config(md5:#{md5}).#{name}"
175
+ File.write fname, config[:file_content]
176
+ {file: fname}.merge config.except(:file_content)
177
+ else
178
+ config
179
+ end
165
180
  end
166
181
 
167
182
  prune = ->(o) {
@@ -203,6 +218,10 @@ module Dry
203
218
  @ingress.merge! services
204
219
  end
205
220
 
221
+ def Config(name, opts)
222
+ @configs[name] = opts
223
+ end
224
+
206
225
  def Deploy(services)
207
226
  @deploy.merge! expand_hash(services)
208
227
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Dry
2
2
  class Stack
3
- VERSION = '0.0.42'
3
+ VERSION = '0.0.44'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.42
4
+ version: 0.0.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B