dapp 0.7.19 → 0.7.20
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/config/en/net_status.yml +1 -0
- data/lib/dapp.rb +1 -0
- data/lib/dapp/build/stage/artifact_default.rb +1 -1
- data/lib/dapp/config/artifact_dimg.rb +3 -1
- data/lib/dapp/config/artifact_group.rb +3 -10
- data/lib/dapp/config/base.rb +0 -4
- data/lib/dapp/config/dimg.rb +1 -0
- data/lib/dapp/config/dimg/instance_methods.rb +24 -23
- data/lib/dapp/config/dimg/merging.rb +28 -0
- data/lib/dapp/config/dimg/validation.rb +3 -2
- data/lib/dapp/config/dimg_group.rb +3 -2
- data/lib/dapp/config/dimg_group_base.rb +8 -8
- data/lib/dapp/config/directive/base.rb +20 -2
- data/lib/dapp/config/directive/docker/dimg.rb +0 -8
- data/lib/dapp/config/directive/shell/dimg.rb +0 -4
- data/lib/dapp/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96bc677343a9749478a52286ccb933740bc6e557
|
4
|
+
data.tar.gz: ab744c2f9d2be05923483460de051cafce13d646
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f229985856b89b0ff2379b465b37255729adc1f4c2fa9ae527885a7a08dbd1a4bd1927e520bdb13cdd0d6bcf6a2eb6b51dfbbda92e7542b202c7e07cfc7b7a5
|
7
|
+
data.tar.gz: 9c43f662cdabe89c20e063f001bc0bf1cfe2779d8cf03bb45f37b1708050ab3b461304b41bf5d79382ad0573fd1374c72637ef0e6d49c9fd4166bb56ba1dc31c
|
data/config/en/net_status.yml
CHANGED
@@ -40,6 +40,7 @@ en:
|
|
40
40
|
builder_type_conflict: 'Conflict between builder types!'
|
41
41
|
builder_type_unsupported: "Defined unsupported builder type `%{type}`!"
|
42
42
|
docker_from_incorrect: "`docker.from` has incorrect value `%{name}`!"
|
43
|
+
docker_from_without_tag: "`docker.from`: image `%{name}` without !"
|
43
44
|
stage_artifact_not_associated: "Artifact not associated with any stage: expected `before` or `after` attribute!"
|
44
45
|
stage_artifact_double_associate: "Cannot use `%{stage}` stage for artifact, already used in `%{conflict_stage}` stage!"
|
45
46
|
stage_artifact_not_supported_associated_stage: "Bad artifact stage `%{stage}`!"
|
data/lib/dapp.rb
CHANGED
@@ -64,6 +64,7 @@ require 'dapp/filelock'
|
|
64
64
|
require 'dapp/config/base'
|
65
65
|
require 'dapp/config/directive/base'
|
66
66
|
require 'dapp/config/dimg/instance_methods'
|
67
|
+
require 'dapp/config/dimg/merging'
|
67
68
|
require 'dapp/config/dimg/validation'
|
68
69
|
require 'dapp/config/dimg'
|
69
70
|
require 'dapp/config/artifact_dimg'
|
@@ -37,7 +37,7 @@ module Dapp
|
|
37
37
|
excludes = find_command_excludes(from, exclude_paths).join(' ')
|
38
38
|
|
39
39
|
copy_files = proc do |from_, path_ = ''|
|
40
|
-
"if [[ -d #{File.join(from_, path_)} ]]; then " \
|
40
|
+
"if [[ -d #{File.join(from_, path_)} ]] || [[ -f #{File.join(from_, path_)} ]]; then " \
|
41
41
|
"#{dimg.project.find_bin} #{File.join(from_, path_)} #{excludes} -type f -exec " \
|
42
42
|
"#{dimg.project.bash_bin} -ec '#{dimg.project.install_bin} -D #{credentials} {} " \
|
43
43
|
"#{File.join(to, '$(echo {} | ' \
|
@@ -30,14 +30,9 @@ module Dapp
|
|
30
30
|
|
31
31
|
def export(*args, &blk)
|
32
32
|
_export.concat begin
|
33
|
-
artifact_config =
|
34
|
-
"artifact-#{SecureRandom.hex(2)}",
|
35
|
-
project: project
|
36
|
-
))
|
37
|
-
|
33
|
+
artifact_config = pass_to(ArtifactDimg.new("artifact-#{SecureRandom.hex(2)}", project: project))
|
38
34
|
artifact = Directive::Artifact.new(project: project, config: artifact_config)
|
39
35
|
artifact.send(:export, *args, &blk)
|
40
|
-
|
41
36
|
artifact._export
|
42
37
|
end
|
43
38
|
end
|
@@ -48,10 +43,8 @@ module Dapp
|
|
48
43
|
def check_dimg_group_directive_order(_directive)
|
49
44
|
end
|
50
45
|
|
51
|
-
def
|
52
|
-
super
|
53
|
-
artifact_dimg.instance_variable_set(:@_artifact_dependencies, _artifact_dependencies.dup)
|
54
|
-
end
|
46
|
+
def passed_directives
|
47
|
+
super << :artifact_dependencies
|
55
48
|
end
|
56
49
|
end
|
57
50
|
end
|
data/lib/dapp/config/base.rb
CHANGED
data/lib/dapp/config/dimg.rb
CHANGED
@@ -20,12 +20,12 @@ module Dapp
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def chef(&blk)
|
23
|
-
|
23
|
+
builder(:chef)
|
24
24
|
directive_eval(_chef, &blk)
|
25
25
|
end
|
26
26
|
|
27
27
|
def shell(&blk)
|
28
|
-
|
28
|
+
builder(:shell)
|
29
29
|
directive_eval(_shell, &blk)
|
30
30
|
end
|
31
31
|
|
@@ -35,7 +35,7 @@ module Dapp
|
|
35
35
|
|
36
36
|
def artifact(&blk)
|
37
37
|
_artifact.concat begin
|
38
|
-
|
38
|
+
pass_to(ArtifactGroup.new(project: project)).tap do |artifact_group|
|
39
39
|
artifact_group.instance_eval(&blk) if block_given?
|
40
40
|
end._export
|
41
41
|
end
|
@@ -150,7 +150,7 @@ module Dapp
|
|
150
150
|
|
151
151
|
protected
|
152
152
|
|
153
|
-
def
|
153
|
+
def builder(type)
|
154
154
|
@_builder = type if _builder == :none
|
155
155
|
raise Error::Config, code: :builder_type_conflict unless @_builder == type
|
156
156
|
end
|
@@ -160,33 +160,34 @@ module Dapp
|
|
160
160
|
directive
|
161
161
|
end
|
162
162
|
|
163
|
-
def
|
164
|
-
pass_to_custom(dimg, :clone)
|
165
|
-
end
|
166
|
-
|
167
|
-
def pass_to_custom(obj, clone_method)
|
163
|
+
def pass_to(obj)
|
168
164
|
passed_directives.each do |directive|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
165
|
+
directive_variable_name = :"@_#{directive}"
|
166
|
+
|
167
|
+
next if (value = instance_variable_get(directive_variable_name)).nil?
|
168
|
+
obj_value = obj.instance_variable_get(directive_variable_name)
|
169
|
+
|
170
|
+
if value.is_a?(Directive::Base)
|
171
|
+
obj.builder(directive) if [:chef, :shell].include? directive
|
172
|
+
if obj_value.nil?
|
173
|
+
obj.instance_variable_set(directive_variable_name, value.send(:_clone))
|
177
174
|
else
|
178
|
-
|
175
|
+
obj_value.send(:merge, value)
|
179
176
|
end
|
180
|
-
|
177
|
+
elsif respond_to?(:"merge_#{directive}", true)
|
178
|
+
obj.instance_variable_set(directive_variable_name, send(:"merge_#{directive}", obj_value, value))
|
179
|
+
else
|
180
|
+
raise
|
181
|
+
end
|
181
182
|
end
|
182
183
|
obj
|
183
184
|
end
|
184
185
|
|
185
186
|
def passed_directives
|
186
|
-
[
|
187
|
-
|
188
|
-
|
189
|
-
|
187
|
+
[:chef, :shell, :docker,
|
188
|
+
:git_artifact, :mount,
|
189
|
+
:artifact, :builder, :dev_mode,
|
190
|
+
:install_dependencies, :setup_dependencies]
|
190
191
|
end
|
191
192
|
end
|
192
193
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Config
|
3
|
+
class Dimg < Base
|
4
|
+
# Merging
|
5
|
+
module Merging
|
6
|
+
protected
|
7
|
+
|
8
|
+
[:mount, :artifact].each do |directive|
|
9
|
+
define_method "merge_#{directive}" do |a, b|
|
10
|
+
b.map { |a| a.send(:_clone) }.concat(Array(a))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
[:install_dependencies, :setup_dependencies, :artifact_dependencies].each do |directive|
|
15
|
+
define_method "merge_#{directive}" do |a, b|
|
16
|
+
b.dup.concat(Array(a))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
[:builder, :dev_mode].each do |directive|
|
21
|
+
define_method "merge_#{directive}" do |a, b|
|
22
|
+
a.nil? ? b : a
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -22,8 +22,9 @@ module Dapp
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def directives_validate!
|
25
|
-
passed_directives.each do |
|
26
|
-
|
25
|
+
passed_directives.each do |directive|
|
26
|
+
directive_variable_name = :"@_#{directive}"
|
27
|
+
next if (value = instance_variable_get(directive_variable_name)).nil?
|
27
28
|
Array(value).each do |elm|
|
28
29
|
elm.send(:validate!) if elm.methods.include?(:validate!)
|
29
30
|
end
|
@@ -3,6 +3,7 @@ module Dapp
|
|
3
3
|
# DimgGroup
|
4
4
|
class DimgGroup < DimgGroupBase
|
5
5
|
include Dimg::InstanceMethods
|
6
|
+
include Dimg::Merging
|
6
7
|
|
7
8
|
def chef(&blk)
|
8
9
|
check_dimg_directive_order(:chef)
|
@@ -37,11 +38,11 @@ module Dapp
|
|
37
38
|
protected
|
38
39
|
|
39
40
|
def before_dimg_eval(dimg)
|
40
|
-
|
41
|
+
pass_to(dimg)
|
41
42
|
end
|
42
43
|
|
43
44
|
def before_dimg_group_eval(dimg_group)
|
44
|
-
|
45
|
+
pass_to(dimg_group)
|
45
46
|
end
|
46
47
|
|
47
48
|
def check_dimg_directive_order(directive)
|
@@ -17,16 +17,16 @@ module Dapp
|
|
17
17
|
|
18
18
|
def dimg(name = nil, &blk)
|
19
19
|
Config::Dimg.new(name, project: project).tap do |dimg|
|
20
|
-
before_dimg_eval(dimg)
|
21
20
|
dimg.instance_eval(&blk) if block_given?
|
21
|
+
after_dimg_eval(dimg)
|
22
22
|
@_dimg << dimg
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def dimg_group(&blk)
|
27
27
|
Config::DimgGroup.new(project: project).tap do |dimg_group|
|
28
|
-
before_dimg_group_eval(dimg_group)
|
29
28
|
dimg_group.instance_eval(&blk) if block_given?
|
29
|
+
after_dimg_group_eval(dimg_group)
|
30
30
|
@_dimg_group << dimg_group
|
31
31
|
end
|
32
32
|
end
|
@@ -37,16 +37,16 @@ module Dapp
|
|
37
37
|
|
38
38
|
protected
|
39
39
|
|
40
|
-
def
|
41
|
-
|
40
|
+
def after_dimg_eval(dimg)
|
41
|
+
pass_to(dimg)
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
45
|
-
|
44
|
+
def after_dimg_group_eval(dimg_group)
|
45
|
+
pass_to(dimg_group)
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
49
|
-
obj.instance_variable_set(:@_dev_mode, @_dev_mode)
|
48
|
+
def pass_to(obj)
|
49
|
+
obj.instance_variable_set(:@_dev_mode, obj.instance_variable_get(:@_dev_mode) || @_dev_mode)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -9,8 +9,26 @@ module Dapp
|
|
9
9
|
_clone
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
clone
|
12
|
+
def merge(obj)
|
13
|
+
cloned_obj = obj.clone
|
14
|
+
|
15
|
+
instance_variables.each do |variable_name|
|
16
|
+
next if (obj_value = cloned_obj.instance_variable_get(variable_name)).nil?
|
17
|
+
value = instance_variable_get(variable_name)
|
18
|
+
|
19
|
+
case obj_value
|
20
|
+
when Directive::Base
|
21
|
+
if value.nil?
|
22
|
+
instance_variable_set(variable_name, obj_value)
|
23
|
+
else
|
24
|
+
value.send(:merge, obj_value)
|
25
|
+
end
|
26
|
+
when Array then instance_variable_set(variable_name, obj_value.concat(Array(value)))
|
27
|
+
when Hash then instance_variable_set(variable_name, obj_value.merge(Hash(value)))
|
28
|
+
else
|
29
|
+
instance_variable_set(variable_name, value || obj_value)
|
30
|
+
end
|
31
|
+
end
|
14
32
|
end
|
15
33
|
end
|
16
34
|
end
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -438,6 +438,7 @@ files:
|
|
438
438
|
- lib/dapp/config/base.rb
|
439
439
|
- lib/dapp/config/dimg.rb
|
440
440
|
- lib/dapp/config/dimg/instance_methods.rb
|
441
|
+
- lib/dapp/config/dimg/merging.rb
|
441
442
|
- lib/dapp/config/dimg/validation.rb
|
442
443
|
- lib/dapp/config/dimg_group.rb
|
443
444
|
- lib/dapp/config/dimg_group_base.rb
|