dapp 0.3.5 → 0.4.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 +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
|