dapp 0.7.19 → 0.7.20
Sign up to get free protection for your applications and to get access to all the features.
- 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
|