dry-stack 0.0.42 → 0.0.44

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: 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