dip 8.0.0.rc → 8.1.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 +4 -4
- data/README.md +89 -5
- data/lib/dip/config.rb +28 -2
- data/lib/dip/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b6092ebf900ada263123eecb33ee04460d0d8c03421d7f77b99486b6a66941f
|
4
|
+
data.tar.gz: f2753b321d575b0417ca3153283d8181fdf78f9d75a393c0df74671b0343e8ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b8bd274d40759d1bcb770d9bc6318980d6de06ce6a2f8e6569b7605cdbe9e77b205480bbf7436ee415bad24176ee90928f450875c33aa6cb997f70f6ba4425b
|
7
|
+
data.tar.gz: dd228653949ce59936aa21b1e63c2f624c522c4fa050eba9f484180e87eccf3b06a44f173cdbbd682d1f6b1045540aaf6af33a194c6ba09ba7c6468031b1adbe
|
data/README.md
CHANGED
@@ -2,11 +2,9 @@
|
|
2
2
|
[](https://github.com/bibendi/dip/actions?query=branch%3Amaster)
|
3
3
|
[](https://codeclimate.com/github/bibendi/dip/maintainability)
|
4
4
|
|
5
|
-
|
5
|
+
<img src="https://raw.githubusercontent.com/bibendi/dip/master/.github/logo.png" alt="dip logo" height="140" />
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Development-environment CLI program providing the native-like interaction with a Dockerized application. It creates the feeling that you are working without mind-blowing commands to run the containers.
|
7
|
+
The dip is a CLI dev–tool that provides native-like interaction with a Dockerized application. It gives the feeling that you are working without using mind-blowing commands to run containers.
|
10
8
|
|
11
9
|
<a href="https://evilmartians.com/?utm_source=dip">
|
12
10
|
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" height="80" /></a>
|
@@ -78,7 +76,7 @@ Also, you can check out examples at the top.
|
|
78
76
|
|
79
77
|
```yml
|
80
78
|
# Required minimum dip version
|
81
|
-
version: '
|
79
|
+
version: '8.0'
|
82
80
|
|
83
81
|
environment:
|
84
82
|
COMPOSE_EXT: development
|
@@ -240,6 +238,92 @@ services:
|
|
240
238
|
|
241
239
|
The container will run using the same user ID as your host machine.
|
242
240
|
|
241
|
+
### Modules
|
242
|
+
|
243
|
+
Modules are defined as array in `modules` section of dip.yml, modules are stored in `.dip` subdirectory of dip.yml directory.
|
244
|
+
|
245
|
+
The main purpose of modules is to improve maintainability for a group of projects.
|
246
|
+
Imagine having multiple gems which are managed with dip, each of them has the same commands, so to change one command in dip you need to update all gems individualy.
|
247
|
+
|
248
|
+
With `modules` you can define a group of modules for dip.
|
249
|
+
|
250
|
+
For example having setup as this:
|
251
|
+
|
252
|
+
```yml
|
253
|
+
# ./dip.yml
|
254
|
+
modules:
|
255
|
+
- sasts
|
256
|
+
- rails
|
257
|
+
|
258
|
+
...
|
259
|
+
```
|
260
|
+
|
261
|
+
```yml
|
262
|
+
# ./.dip/sasts.yml
|
263
|
+
interaction:
|
264
|
+
brakeman:
|
265
|
+
description: Check brakeman sast
|
266
|
+
command: docker run ...
|
267
|
+
```
|
268
|
+
|
269
|
+
```yml
|
270
|
+
# ./.dip/rails.yml
|
271
|
+
interaction:
|
272
|
+
annotate:
|
273
|
+
description: Run annotate command
|
274
|
+
service: backend
|
275
|
+
command: bundle exec annotate
|
276
|
+
```
|
277
|
+
|
278
|
+
Will be expanded to:
|
279
|
+
|
280
|
+
```yml
|
281
|
+
# resultant configuration
|
282
|
+
interaction:
|
283
|
+
brakeman:
|
284
|
+
description: Check brakeman sast
|
285
|
+
command: docker run ...
|
286
|
+
annotate:
|
287
|
+
description: Run annotate command
|
288
|
+
service: backend
|
289
|
+
command: bundle exec annotate
|
290
|
+
```
|
291
|
+
|
292
|
+
Imagine `.dip` to be a submodule so it can be managed only in one place.
|
293
|
+
|
294
|
+
If you want to override module command, you can redefine it in dip.yml
|
295
|
+
|
296
|
+
```yml
|
297
|
+
# ./dip.yml
|
298
|
+
modules:
|
299
|
+
- sasts
|
300
|
+
|
301
|
+
interaction:
|
302
|
+
brakeman:
|
303
|
+
description: Check brakeman sast
|
304
|
+
command: docker run another-image ...
|
305
|
+
```
|
306
|
+
|
307
|
+
```yml
|
308
|
+
# ./.dip/sasts.yml
|
309
|
+
interaction:
|
310
|
+
brakeman:
|
311
|
+
description: Check brakeman sast
|
312
|
+
command: docker run some-image ...
|
313
|
+
```
|
314
|
+
|
315
|
+
Will be expanded to:
|
316
|
+
|
317
|
+
```yml
|
318
|
+
# resultant configuration
|
319
|
+
interaction:
|
320
|
+
brakeman:
|
321
|
+
description: Check brakeman sast
|
322
|
+
command: docker run another-image ...
|
323
|
+
```
|
324
|
+
|
325
|
+
Nested modules are not supported.
|
326
|
+
|
243
327
|
### dip run
|
244
328
|
|
245
329
|
Run commands defined within the `interaction` section of dip.yml
|
data/lib/dip/config.rb
CHANGED
@@ -43,6 +43,10 @@ module Dip
|
|
43
43
|
file_path&.exist?
|
44
44
|
end
|
45
45
|
|
46
|
+
def modules_dir
|
47
|
+
file_path.dirname / ".dip"
|
48
|
+
end
|
49
|
+
|
46
50
|
private
|
47
51
|
|
48
52
|
attr_reader :override
|
@@ -90,6 +94,10 @@ module Dip
|
|
90
94
|
finder.file_path
|
91
95
|
end
|
92
96
|
|
97
|
+
def module_file(filename)
|
98
|
+
finder.modules_dir / "#{filename}.yml"
|
99
|
+
end
|
100
|
+
|
93
101
|
def exist?
|
94
102
|
finder.exist?
|
95
103
|
end
|
@@ -125,10 +133,28 @@ module Dip
|
|
125
133
|
"Please upgrade your dip!"
|
126
134
|
end
|
127
135
|
|
136
|
+
base_config = {}
|
137
|
+
|
138
|
+
if (modules = config[:modules])
|
139
|
+
raise Dip::Error, "Modules should be specified as array" unless modules.is_a?(Array)
|
140
|
+
|
141
|
+
modules.each do |m|
|
142
|
+
file = module_file(m)
|
143
|
+
raise Dip::Error, "Could not find module `#{m}`" unless file.exist?
|
144
|
+
|
145
|
+
module_config = self.class.load_yaml(file)
|
146
|
+
raise Dip::Error, "Nested modules are not supported" if module_config[:modules]
|
147
|
+
|
148
|
+
base_config.deep_merge!(module_config)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
base_config.deep_merge!(config)
|
153
|
+
|
128
154
|
override_finder = ConfigFinder.new(work_dir, override: true)
|
129
|
-
|
155
|
+
base_config.deep_merge!(self.class.load_yaml(override_finder.file_path)) if override_finder.exist?
|
130
156
|
|
131
|
-
@config = CONFIG_DEFAULTS.merge(
|
157
|
+
@config = CONFIG_DEFAULTS.merge(base_config)
|
132
158
|
end
|
133
159
|
|
134
160
|
def config_missing_error(config_key)
|
data/lib/dip/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bibendi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -228,9 +228,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
228
228
|
version: '2.7'
|
229
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
230
|
requirements:
|
231
|
-
- - "
|
231
|
+
- - ">="
|
232
232
|
- !ruby/object:Gem::Version
|
233
|
-
version:
|
233
|
+
version: '0'
|
234
234
|
requirements: []
|
235
235
|
rubygems_version: 3.2.32
|
236
236
|
signing_key:
|