dapp 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/dapp.rb +5 -4
- data/lib/dapp/application.rb +3 -0
- data/lib/dapp/build/stage/chef_cookbooks.rb +1 -1
- data/lib/dapp/build/stage/{app_install.rb → install.rb} +4 -4
- data/lib/dapp/build/stage/{app_setup.rb → setup.rb} +4 -4
- data/lib/dapp/build/stage/source_1.rb +4 -4
- data/lib/dapp/build/stage/source_2.rb +1 -1
- data/lib/dapp/build/stage/source_3.rb +4 -4
- data/lib/dapp/build/stage/source_base.rb +1 -1
- data/lib/dapp/builder/base.rb +4 -4
- data/lib/dapp/builder/chef.rb +3 -6
- data/lib/dapp/builder/chef/cookbook_metadata.rb +1 -1
- data/lib/dapp/builder/shell.rb +1 -1
- data/lib/dapp/cli.rb +2 -1
- data/lib/dapp/cli/build.rb +6 -5
- data/lib/dapp/cli/metadata.rb +18 -0
- data/lib/dapp/cli/metadata/flush.rb +22 -0
- data/lib/dapp/cli/stages.rb +1 -1
- data/lib/dapp/config/application.rb +10 -10
- data/lib/dapp/config/artifact.rb +1 -4
- data/lib/dapp/config/shell.rb +14 -14
- data/lib/dapp/controller.rb +8 -0
- data/lib/dapp/image/{arguments.rb → argument.rb} +13 -13
- data/lib/dapp/image/stage.rb +1 -1
- data/lib/dapp/version.rb +1 -1
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWNiMTY4M2E2ZmM1YzcyNWVjNTRjNGFiNmM2NTBjMTQ5YWEwZjAxYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2MyY2M5MWZlN2UzYmU5NWI5OGFkMjEzYTI4MDE5N2E5Y2JmNGVjMA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Yjk5ZjAzNzg3ZTIyOTBhMjhjMWY5YTM0ZTNhYTQ4MzMwNDkwNTAyOGI3ZWQ2
|
10
|
+
MzA1MDY4YTQ5YzUyNDgwYzQ1NGRhY2I4NjUzMGM5NTE5Y2ZjMTdjMjE4YjJj
|
11
|
+
ZmVmMGYyZjkxYWQwZDIxYzRmZDQxNDRlOTNjY2EzMzFjMjBmM2E=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWY4ZjJiNzY0MzU3OGYzYWEzMWEwZDUzOWQxOGU4YTM2YmM4MGY2YjA4OWEx
|
14
|
+
Y2U2ZWU4MzU5MWQwNTA0OTliNjhiMWE5Y2EzNDUzNGQ4N2MwMGEwMDBjZjNl
|
15
|
+
ZTMyMjE4ZmJiZTNmMGY2YWRlZGVjMGFkM2JiYjExYjRmNjMxOTU=
|
data/lib/dapp.rb
CHANGED
@@ -31,7 +31,8 @@ require 'dapp/cli/build'
|
|
31
31
|
require 'dapp/cli/push'
|
32
32
|
require 'dapp/cli/smartpush'
|
33
33
|
require 'dapp/cli/list'
|
34
|
-
require 'dapp/cli/
|
34
|
+
require 'dapp/cli/metadata'
|
35
|
+
require 'dapp/cli/metadata/flush'
|
35
36
|
require 'dapp/cli/stages/flush'
|
36
37
|
require 'dapp/cli/stages/cleanup'
|
37
38
|
require 'dapp/cli/run'
|
@@ -55,8 +56,8 @@ require 'dapp/build/stage/source_base'
|
|
55
56
|
require 'dapp/build/stage/from'
|
56
57
|
require 'dapp/build/stage/infra_install'
|
57
58
|
require 'dapp/build/stage/infra_setup'
|
58
|
-
require 'dapp/build/stage/
|
59
|
-
require 'dapp/build/stage/
|
59
|
+
require 'dapp/build/stage/install'
|
60
|
+
require 'dapp/build/stage/setup'
|
60
61
|
require 'dapp/build/stage/chef_cookbooks'
|
61
62
|
require 'dapp/build/stage/source_1_archive'
|
62
63
|
require 'dapp/build/stage/source_1'
|
@@ -70,7 +71,7 @@ require 'dapp/application/logging'
|
|
70
71
|
require 'dapp/application/path'
|
71
72
|
require 'dapp/application/tags'
|
72
73
|
require 'dapp/application'
|
73
|
-
require 'dapp/image/
|
74
|
+
require 'dapp/image/argument'
|
74
75
|
require 'dapp/image/docker'
|
75
76
|
require 'dapp/image/stage'
|
76
77
|
require 'dapp/git_repo/base'
|
data/lib/dapp/application.rb
CHANGED
@@ -16,6 +16,9 @@ module Dapp
|
|
16
16
|
attr_reader :ignore_git_fetch
|
17
17
|
attr_reader :is_artifact
|
18
18
|
|
19
|
+
STAGES = [:from, :infra_install, :source_1_archive, :source_1, :install, :source_2,
|
20
|
+
:infra_setup, :source_3, :chef_cookbooks, :setup, :source_4, :source_5].freeze
|
21
|
+
|
19
22
|
def initialize(config:, cli_options:, ignore_git_fetch: false, is_artifact: false)
|
20
23
|
@config = config
|
21
24
|
@cli_options = cli_options
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Dapp
|
2
2
|
module Build
|
3
3
|
module Stage
|
4
|
-
#
|
5
|
-
class
|
4
|
+
# Install
|
5
|
+
class Install < Base
|
6
6
|
def initialize(application, next_stage)
|
7
7
|
@prev_stage = Source1.new(application, self)
|
8
8
|
super
|
@@ -10,10 +10,10 @@ module Dapp
|
|
10
10
|
|
11
11
|
def image
|
12
12
|
super do |image|
|
13
|
-
application.builder.
|
13
|
+
application.builder.install(image)
|
14
14
|
end
|
15
15
|
end
|
16
|
-
end #
|
16
|
+
end # Install
|
17
17
|
end # Stage
|
18
18
|
end # Build
|
19
19
|
end # Dapp
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Dapp
|
2
2
|
module Build
|
3
3
|
module Stage
|
4
|
-
#
|
5
|
-
class
|
4
|
+
# Setup
|
5
|
+
class Setup < Base
|
6
6
|
def initialize(application, next_stage)
|
7
7
|
@prev_stage = Source3.new(application, self)
|
8
8
|
super
|
@@ -10,10 +10,10 @@ module Dapp
|
|
10
10
|
|
11
11
|
def image
|
12
12
|
super do |image|
|
13
|
-
application.builder.
|
13
|
+
application.builder.setup(image)
|
14
14
|
end
|
15
15
|
end
|
16
|
-
end #
|
16
|
+
end # Setup
|
17
17
|
end # Stage
|
18
18
|
end # Build
|
19
19
|
end # Dapp
|
@@ -16,14 +16,14 @@ module Dapp
|
|
16
16
|
|
17
17
|
def dependencies_checksum
|
18
18
|
hashsum [super,
|
19
|
-
|
20
|
-
*application.builder.
|
19
|
+
install_dependencies_files_checksum,
|
20
|
+
*application.builder.install_checksum]
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
24
24
|
|
25
|
-
def
|
26
|
-
@
|
25
|
+
def install_dependencies_files_checksum
|
26
|
+
@install_dependencies_files_checksum ||= dependencies_files_checksum(application.config._install_dependencies)
|
27
27
|
end
|
28
28
|
end # Source1
|
29
29
|
end # Stage
|
@@ -12,14 +12,14 @@ module Dapp
|
|
12
12
|
|
13
13
|
def dependencies_checksum
|
14
14
|
hashsum [super,
|
15
|
-
|
16
|
-
*application.builder.
|
15
|
+
setup_dependencies_files_checksum,
|
16
|
+
*application.builder.setup_checksum]
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
|
-
def
|
22
|
-
@
|
21
|
+
def setup_dependencies_files_checksum
|
22
|
+
@setup_files_checksum ||= dependencies_files_checksum(application.config._setup_dependencies)
|
23
23
|
end
|
24
24
|
end # Source3
|
25
25
|
end # Stage
|
@@ -97,7 +97,7 @@ module Dapp
|
|
97
97
|
application.metadata_path git_artifact.filename ".#{name}.#{git_artifact.paramshash}.#{dependencies_checksum}.commit"
|
98
98
|
end
|
99
99
|
|
100
|
-
def
|
100
|
+
def dependencies_files_checksum(regs)
|
101
101
|
hashsum(regs.map { |reg| Dir[File.join(application.home_path, reg)].map { |f| File.read(f) if File.file?(f) } })
|
102
102
|
end
|
103
103
|
|
data/lib/dapp/builder/base.rb
CHANGED
@@ -24,19 +24,19 @@ module Dapp
|
|
24
24
|
raise
|
25
25
|
end
|
26
26
|
|
27
|
-
def
|
27
|
+
def install(_image)
|
28
28
|
raise
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
31
|
+
def install_checksum
|
32
32
|
raise
|
33
33
|
end
|
34
34
|
|
35
|
-
def
|
35
|
+
def setup(_image)
|
36
36
|
raise
|
37
37
|
end
|
38
38
|
|
39
|
-
def
|
39
|
+
def setup_checksum
|
40
40
|
raise
|
41
41
|
end
|
42
42
|
end # Base
|
data/lib/dapp/builder/chef.rb
CHANGED
@@ -11,7 +11,7 @@ module Dapp
|
|
11
11
|
|
12
12
|
DEFAULT_CHEFDK_IMAGE = 'dappdeps/chefdk:0.17.3-1'.freeze # TODO: config, DSL, DEFAULT_CHEFDK_IMAGE
|
13
13
|
|
14
|
-
[:infra_install, :infra_setup, :
|
14
|
+
[:infra_install, :infra_setup, :install, :setup].each do |stage|
|
15
15
|
define_method(:"#{stage}_checksum") { stage_cookbooks_checksum(stage) }
|
16
16
|
|
17
17
|
define_method(:"#{stage}") do |image|
|
@@ -160,12 +160,9 @@ module Dapp
|
|
160
160
|
['if [ "$LOCKDIFF" != "" ] ; then ',
|
161
161
|
'cp -a /tmp/Berksfile.lock.orig Berksfile.lock ; ',
|
162
162
|
'echo -e "Bad Berksfile.lock\n$LOCKDIFF" 1>&2 ; exit 1 ; fi'].join,
|
163
|
-
["find /tmp/vendored_cookbooks -type d -exec bash -ec '",
|
164
|
-
"install -o #{Process.uid} -g #{Process.gid} --mode $(stat -c %a {}) -d ",
|
165
|
-
"#{_cookbooks_vendor_path}/$(echo {} | sed -e \"s/^\\/tmp\\/vendored_cookbooks//\")' \\;"].join,
|
166
163
|
["find /tmp/vendored_cookbooks -type f -exec bash -ec '",
|
167
|
-
"install -o #{Process.uid} -g #{Process.gid} --mode $(stat -c %a {}) {} ",
|
168
|
-
"#{_cookbooks_vendor_path}/$(echo {} | sed -e \"s/\\/tmp\\/vendored_cookbooks
|
164
|
+
"install -D -o #{Process.uid} -g #{Process.gid} --mode $(stat -c %a {}) {} ",
|
165
|
+
"#{_cookbooks_vendor_path}/$(echo {} | sed -e \"s/\\/tmp\\/vendored_cookbooks\\///g\")' \\;"].join
|
169
166
|
]
|
170
167
|
|
171
168
|
application.shellout!(
|
data/lib/dapp/builder/shell.rb
CHANGED
@@ -2,7 +2,7 @@ module Dapp
|
|
2
2
|
module Builder
|
3
3
|
# Shell
|
4
4
|
class Shell < Base
|
5
|
-
[:infra_install, :infra_setup, :
|
5
|
+
[:infra_install, :infra_setup, :install, :setup].each do |m|
|
6
6
|
define_method(:"#{m}_checksum") do
|
7
7
|
[application.config._shell.public_send("_#{m}"),
|
8
8
|
application.config._shell.public_send("_#{m}_cache_version")].flatten
|
data/lib/dapp/cli.rb
CHANGED
@@ -7,7 +7,7 @@ module Dapp
|
|
7
7
|
include Mixlib::CLI
|
8
8
|
include Helper::Trivia
|
9
9
|
|
10
|
-
SUBCOMMANDS = %w(build smartpush push list run stages).freeze
|
10
|
+
SUBCOMMANDS = %w(build smartpush push list run stages metadata).freeze
|
11
11
|
|
12
12
|
banner <<BANNER.freeze
|
13
13
|
Usage: dapp [options] sub-command [sub-command options]
|
@@ -20,6 +20,7 @@ dapp smartpush [options] [PATTERN ...] REPOPREFIX
|
|
20
20
|
dapp list [options] [PATTERN ...]
|
21
21
|
dapp run [options] [PATTERN] [DOCKER ARGS]
|
22
22
|
dapp stages
|
23
|
+
dapp metadata
|
23
24
|
|
24
25
|
Options:
|
25
26
|
BANNER
|
data/lib/dapp/cli/build.rb
CHANGED
@@ -16,7 +16,6 @@ Usage:
|
|
16
16
|
|
17
17
|
Options:
|
18
18
|
BANNER
|
19
|
-
|
20
19
|
option :tmp_dir_prefix,
|
21
20
|
long: '--tmp-dir-prefix PREFIX',
|
22
21
|
description: 'Tmp directory prefix'
|
@@ -42,16 +41,18 @@ BANNER
|
|
42
41
|
option :introspect_stage,
|
43
42
|
long: '--introspect-stage STAGE',
|
44
43
|
proc: proc { |v| v.to_sym },
|
45
|
-
in: [nil, :from, :infra_install, :source_1_archive, :source_1, :
|
46
|
-
:
|
44
|
+
in: [nil, :from, :infra_install, :source_1_archive, :source_1, :install, :source_2,
|
45
|
+
:infra_setup, :source_3, :chef_cookbooks, :setup, :source_4, :source_5]
|
47
46
|
|
48
47
|
def run(*args)
|
49
48
|
super
|
50
49
|
rescue Exception::IntrospectImage => e
|
51
50
|
$stderr.puts(e.net_status[:message])
|
52
51
|
data = e.net_status[:data]
|
53
|
-
system("docker run -ti --rm #{data[:options]} #{data[:built_id]} bash")
|
54
|
-
|
52
|
+
system("docker run -ti --rm #{data[:options]} #{data[:built_id]} bash").tap do |res|
|
53
|
+
shellout("docker rmi #{data[:built_id]}") if data[:rmi]
|
54
|
+
res || raise(Dapp::Error::Application, code: :application_not_run)
|
55
|
+
end
|
55
56
|
end
|
56
57
|
end
|
57
58
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mixlib/cli'
|
2
|
+
|
3
|
+
module Dapp
|
4
|
+
class CLI
|
5
|
+
# CLI metadata subcommand
|
6
|
+
class Metadata < CLI
|
7
|
+
SUBCOMMANDS = %w(flush).freeze
|
8
|
+
|
9
|
+
banner <<BANNER.freeze
|
10
|
+
Version: #{Dapp::VERSION}
|
11
|
+
|
12
|
+
Available subcommands: (for details, dapp SUB-COMMAND --help)
|
13
|
+
|
14
|
+
dapp metadata flush
|
15
|
+
BANNER
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'mixlib/cli'
|
2
|
+
|
3
|
+
module Dapp
|
4
|
+
class CLI
|
5
|
+
class Metadata
|
6
|
+
# Metadata flush subcommand
|
7
|
+
class Flush < Base
|
8
|
+
banner <<BANNER.freeze
|
9
|
+
Version: #{Dapp::VERSION}
|
10
|
+
|
11
|
+
Usage:
|
12
|
+
dapp metadata flush
|
13
|
+
Options:
|
14
|
+
BANNER
|
15
|
+
def run(argv = ARGV)
|
16
|
+
self.class.parse_options(self, argv)
|
17
|
+
Controller.new(cli_options: config, patterns: cli_arguments).metadata_flush
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/dapp/cli/stages.rb
CHANGED
@@ -11,8 +11,8 @@ module Dapp
|
|
11
11
|
attr_reader :_chef
|
12
12
|
attr_reader :_shell
|
13
13
|
attr_reader :_parent
|
14
|
-
attr_reader :
|
15
|
-
attr_reader :
|
14
|
+
attr_reader :_install_dependencies
|
15
|
+
attr_reader :_setup_dependencies
|
16
16
|
attr_reader :_parent
|
17
17
|
|
18
18
|
def initialize(parent)
|
@@ -20,18 +20,18 @@ module Dapp
|
|
20
20
|
@_parent = parent
|
21
21
|
|
22
22
|
@_artifact = []
|
23
|
-
@
|
24
|
-
@
|
23
|
+
@_install_dependencies = []
|
24
|
+
@_setup_dependencies = []
|
25
25
|
|
26
26
|
yield self if block_given?
|
27
27
|
end
|
28
28
|
|
29
|
-
def
|
30
|
-
@
|
29
|
+
def install_depends_on(*args)
|
30
|
+
@_install_dependencies.concat(args)
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
34
|
-
@
|
33
|
+
def setup_depends_on(*args)
|
34
|
+
@_setup_dependencies.concat(args)
|
35
35
|
end
|
36
36
|
|
37
37
|
def chef
|
@@ -103,8 +103,8 @@ module Dapp
|
|
103
103
|
app.instance_variable_set(:'@_builder', _builder)
|
104
104
|
app.instance_variable_set(:'@_home_path', _home_path)
|
105
105
|
app.instance_variable_set(:'@_basename', _basename)
|
106
|
-
app.instance_variable_set(:'@
|
107
|
-
app.instance_variable_set(:'@
|
106
|
+
app.instance_variable_set(:'@_install_dependencies', _install_dependencies)
|
107
|
+
app.instance_variable_set(:'@_setup_dependencies', _setup_dependencies)
|
108
108
|
app.instance_variable_set(:'@_artifact', Marshal.load(Marshal.dump(_artifact)))
|
109
109
|
app.instance_variable_set(:'@_docker', _docker.clone) unless @_docker.nil?
|
110
110
|
app.instance_variable_set(:'@_git_artifact', _git_artifact.clone) unless @_git_artifact.nil?
|
data/lib/dapp/config/artifact.rb
CHANGED
@@ -47,9 +47,6 @@ module Dapp
|
|
47
47
|
|
48
48
|
# Stage
|
49
49
|
class Stage < Base
|
50
|
-
STAGES = [:from, :infra_install, :source_1_archive, :source_1, :app_install, :source_2,
|
51
|
-
:infra_setup, :source_3, :chef_cookbooks, :app_setup, :source_4, :source_5].freeze
|
52
|
-
|
53
50
|
attr_accessor :_config
|
54
51
|
attr_accessor :_before, :_after
|
55
52
|
|
@@ -77,7 +74,7 @@ module Dapp
|
|
77
74
|
private
|
78
75
|
|
79
76
|
def validate_associated_option(option:, value:)
|
80
|
-
return if STAGES.include? value
|
77
|
+
return if Dapp::Application::STAGES.include? value
|
81
78
|
raise Error::Config, code: :stage_artifact_incorrect_associated_value, data: { option: option, value: value }
|
82
79
|
end
|
83
80
|
end
|
data/lib/dapp/config/shell.rb
CHANGED
@@ -2,14 +2,14 @@ module Dapp
|
|
2
2
|
module Config
|
3
3
|
# Shell
|
4
4
|
class Shell
|
5
|
-
attr_reader :_infra_install, :_infra_setup, :
|
6
|
-
attr_reader :_infra_install_cache_version, :_infra_setup_cache_version, :
|
5
|
+
attr_reader :_infra_install, :_infra_setup, :_install, :_setup
|
6
|
+
attr_reader :_infra_install_cache_version, :_infra_setup_cache_version, :_install_cache_version, :_setup_cache_version
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@_infra_install = []
|
10
10
|
@_infra_setup = []
|
11
|
-
@
|
12
|
-
@
|
11
|
+
@_install = []
|
12
|
+
@_setup = []
|
13
13
|
end
|
14
14
|
|
15
15
|
def infra_install(*args, cache_version: nil)
|
@@ -22,14 +22,14 @@ module Dapp
|
|
22
22
|
@_infra_setup_cache_version = cache_version
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
26
|
-
|
27
|
-
@
|
25
|
+
def install(*args, cache_version: nil)
|
26
|
+
_install.concat(args)
|
27
|
+
@_install_cache_version = cache_version
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
31
|
-
|
32
|
-
@
|
30
|
+
def setup(*args, cache_version: nil)
|
31
|
+
_setup.concat(args)
|
32
|
+
@_setup_cache_version = cache_version
|
33
33
|
end
|
34
34
|
|
35
35
|
def reset_infra_install
|
@@ -40,12 +40,12 @@ module Dapp
|
|
40
40
|
@_infra_setup = []
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
@
|
43
|
+
def reset_install
|
44
|
+
@_install = []
|
45
45
|
end
|
46
46
|
|
47
|
-
def
|
48
|
-
@
|
47
|
+
def reset_setup
|
48
|
+
@_setup = []
|
49
49
|
end
|
50
50
|
|
51
51
|
def reset_all
|
data/lib/dapp/controller.rb
CHANGED
@@ -56,6 +56,14 @@ module Dapp
|
|
56
56
|
shellout(%{docker rmi $(docker images -f "dangling=true" -f "label=dapp=#{build_configs.first._basename}" -q)})
|
57
57
|
end
|
58
58
|
|
59
|
+
def metadata_flush
|
60
|
+
build_configs.each do |config|
|
61
|
+
log(config._name)
|
62
|
+
app = Application.new(config: config, cli_options: cli_options, ignore_git_fetch: true)
|
63
|
+
FileUtils.rm_rf app.metadata_path
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
59
67
|
private
|
60
68
|
|
61
69
|
def build_configs
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Dapp
|
2
2
|
module Image
|
3
|
-
#
|
4
|
-
module
|
3
|
+
# Argument
|
4
|
+
module Argument
|
5
5
|
def add_change_volume(value)
|
6
6
|
add_change_option(:volume, value)
|
7
7
|
end
|
@@ -11,11 +11,11 @@ module Dapp
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def add_change_env(**options)
|
14
|
-
add_change_option(:env,
|
14
|
+
add_change_option(:env, options)
|
15
15
|
end
|
16
16
|
|
17
17
|
def add_change_label(**options)
|
18
|
-
add_change_option(:label,
|
18
|
+
add_change_option(:label, options)
|
19
19
|
end
|
20
20
|
|
21
21
|
def add_change_cmd(value)
|
@@ -72,7 +72,7 @@ module Dapp
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def add_option_default(hash, key, value)
|
75
|
-
hash[key] = (hash[key].nil? ? value : (
|
75
|
+
hash[key] = (hash[key].nil? ? [value] : (hash[key] << value)).flatten
|
76
76
|
end
|
77
77
|
|
78
78
|
def from_options
|
@@ -89,21 +89,21 @@ module Dapp
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def prepared_options
|
92
|
-
prepared_options_default(options) { |
|
92
|
+
prepared_options_default(options) { |key, vals| Array(vals).map { |val| "--#{key}=#{val}" }.join(' ') }
|
93
93
|
end
|
94
94
|
|
95
95
|
def prepared_change
|
96
|
-
prepared_options_default(from_options.merge(change_options)) do |
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
end
|
96
|
+
prepared_options_default(from_options.merge(change_options)) do |key, vals|
|
97
|
+
case key
|
98
|
+
when :cmd, :entrypoint then [vals]
|
99
|
+
when :env, :label then vals.map(&method(:options_to_args)).flatten
|
100
|
+
else vals
|
101
|
+
end.map { |val| %(-c '#{key.to_s.upcase} #{val}') }.join(' ')
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
105
|
def prepared_options_default(hash)
|
106
|
-
hash.map { |
|
106
|
+
hash.map { |key, vals| yield(key, vals) }.join(' ')
|
107
107
|
end
|
108
108
|
|
109
109
|
def prepared_bash_command
|
data/lib/dapp/image/stage.rb
CHANGED
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.
|
4
|
+
version: 0.4.0
|
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-08-
|
11
|
+
date: 2016-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -331,15 +331,15 @@ files:
|
|
331
331
|
- lib/dapp/application/logging.rb
|
332
332
|
- lib/dapp/application/path.rb
|
333
333
|
- lib/dapp/application/tags.rb
|
334
|
-
- lib/dapp/build/stage/app_install.rb
|
335
|
-
- lib/dapp/build/stage/app_setup.rb
|
336
334
|
- lib/dapp/build/stage/base.rb
|
337
335
|
- lib/dapp/build/stage/chef_cookbooks.rb
|
338
336
|
- lib/dapp/build/stage/from.rb
|
339
337
|
- lib/dapp/build/stage/infra_install.rb
|
340
338
|
- lib/dapp/build/stage/infra_setup.rb
|
339
|
+
- lib/dapp/build/stage/install.rb
|
341
340
|
- lib/dapp/build/stage/mod/artifact.rb
|
342
341
|
- lib/dapp/build/stage/mod/logging.rb
|
342
|
+
- lib/dapp/build/stage/setup.rb
|
343
343
|
- lib/dapp/build/stage/source_1.rb
|
344
344
|
- lib/dapp/build/stage/source_1_archive.rb
|
345
345
|
- lib/dapp/build/stage/source_2.rb
|
@@ -356,6 +356,8 @@ files:
|
|
356
356
|
- lib/dapp/cli/base.rb
|
357
357
|
- lib/dapp/cli/build.rb
|
358
358
|
- lib/dapp/cli/list.rb
|
359
|
+
- lib/dapp/cli/metadata.rb
|
360
|
+
- lib/dapp/cli/metadata/flush.rb
|
359
361
|
- lib/dapp/cli/push.rb
|
360
362
|
- lib/dapp/cli/run.rb
|
361
363
|
- lib/dapp/cli/smartpush.rb
|
@@ -392,7 +394,7 @@ files:
|
|
392
394
|
- lib/dapp/helper/shellout.rb
|
393
395
|
- lib/dapp/helper/streaming.rb
|
394
396
|
- lib/dapp/helper/trivia.rb
|
395
|
-
- lib/dapp/image/
|
397
|
+
- lib/dapp/image/argument.rb
|
396
398
|
- lib/dapp/image/docker.rb
|
397
399
|
- lib/dapp/image/stage.rb
|
398
400
|
- lib/dapp/version.rb
|