dapp 0.5.13 → 0.6.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/bin/dapp +3 -0
- data/config/en/common.yml +35 -6
- data/config/en/net_status.yml +20 -6
- data/lib/dapp.rb +53 -27
- data/lib/dapp/application.rb +48 -27
- data/lib/dapp/application/git_artifact.rb +1 -1
- data/lib/dapp/application/path.rb +2 -18
- data/lib/dapp/application/tags.rb +5 -5
- data/lib/dapp/build/stage/artifact.rb +8 -3
- data/lib/dapp/build/stage/base.rb +43 -30
- data/lib/dapp/build/stage/{infra_install.rb → before_install.rb} +6 -6
- data/lib/dapp/build/stage/before_setup.rb +27 -0
- data/lib/dapp/build/stage/docker_instructions.rb +12 -1
- data/lib/dapp/build/stage/from.rb +4 -3
- data/lib/dapp/build/stage/{source_1_archive.rb → ga_archive.rb} +7 -7
- data/lib/dapp/build/stage/{source_1_archive_dependencies.rb → ga_archive_dependencies.rb} +4 -4
- data/lib/dapp/build/stage/{source_base.rb → ga_base.rb} +31 -7
- data/lib/dapp/build/stage/{source_dependencies_base.rb → ga_dependencies_base.rb} +5 -6
- data/lib/dapp/build/stage/{source_5.rb → ga_latest_patch.rb} +6 -6
- data/lib/dapp/build/stage/install/ga_post_install_patch.rb +21 -0
- data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +21 -0
- data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +21 -0
- data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +31 -0
- data/lib/dapp/build/stage/install/install.rb +31 -0
- data/lib/dapp/build/stage/mod/artifact.rb +9 -19
- data/lib/dapp/build/stage/mod/group.rb +42 -0
- data/lib/dapp/build/stage/mod/logging.rb +62 -26
- data/lib/dapp/build/stage/setup/chef_cookbooks.rb +37 -0
- data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +25 -0
- data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +31 -0
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +25 -0
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +27 -0
- data/lib/dapp/build/stage/setup/setup.rb +31 -0
- data/lib/dapp/builder/base.rb +9 -6
- data/lib/dapp/builder/chef.rb +128 -107
- data/lib/dapp/builder/chef/berksfile.rb +3 -0
- data/lib/dapp/builder/shell.rb +4 -3
- data/lib/dapp/cli.rb +8 -6
- data/lib/dapp/cli/base.rb +6 -1
- data/lib/dapp/cli/bp.rb +41 -0
- data/lib/dapp/cli/build.rb +17 -4
- data/lib/dapp/cli/cleanup.rb +24 -0
- data/lib/dapp/cli/list.rb +2 -2
- data/lib/dapp/cli/push.rb +8 -9
- data/lib/dapp/cli/run.rb +3 -4
- data/lib/dapp/cli/spush.rb +20 -0
- data/lib/dapp/cli/stages.rb +2 -0
- data/lib/dapp/cli/stages/cleanup.rb +7 -3
- data/lib/dapp/cli/stages/flush.rb +6 -3
- data/lib/dapp/config/application.rb +17 -11
- data/lib/dapp/config/chef.rb +4 -0
- data/lib/dapp/config/docker.rb +3 -2
- data/lib/dapp/config/git_artifact.rb +1 -2
- data/lib/dapp/config/main.rb +5 -2
- data/lib/dapp/config/shell.rb +20 -16
- data/lib/dapp/docker_registry.rb +32 -0
- data/lib/dapp/docker_registry/base.rb +47 -0
- data/lib/dapp/docker_registry/default.rb +18 -0
- data/lib/dapp/docker_registry/mod/authorization.rb +62 -0
- data/lib/dapp/docker_registry/mod/request.rb +44 -0
- data/lib/dapp/error/image.rb +6 -0
- data/lib/dapp/error/project.rb +6 -0
- data/lib/dapp/error/registry.rb +6 -0
- data/lib/dapp/exception/registry.rb +6 -0
- data/lib/dapp/git_artifact.rb +6 -7
- data/lib/dapp/git_repo/base.rb +1 -1
- data/lib/dapp/git_repo/remote.rb +6 -38
- data/lib/dapp/helper/sha256.rb +3 -3
- data/lib/dapp/helper/shellout.rb +25 -7
- data/lib/dapp/helper/streaming.rb +1 -3
- data/lib/dapp/image/argument.rb +31 -18
- data/lib/dapp/image/docker.rb +15 -8
- data/lib/dapp/image/stage.rb +10 -12
- data/lib/dapp/lock/base.rb +44 -0
- data/lib/dapp/lock/error.rb +14 -0
- data/lib/dapp/lock/file.rb +33 -0
- data/lib/dapp/prctl.rb +22 -0
- data/lib/dapp/project.rb +75 -0
- data/lib/dapp/project/command/bp.rb +24 -0
- data/lib/dapp/project/command/build.rb +21 -0
- data/lib/dapp/project/command/cleanup.rb +24 -0
- data/lib/dapp/project/command/common.rb +51 -0
- data/lib/dapp/project/command/list.rb +14 -0
- data/lib/dapp/project/command/push.rb +21 -0
- data/lib/dapp/project/command/run.rb +15 -0
- data/lib/dapp/project/command/spush.rb +17 -0
- data/lib/dapp/project/command/stages_cleanup.rb +70 -0
- data/lib/dapp/project/command/stages_flush.rb +18 -0
- data/lib/dapp/project/dappfile.rb +70 -0
- data/lib/dapp/project/lock.rb +27 -0
- data/lib/dapp/project/logging/base.rb +107 -0
- data/lib/dapp/project/logging/process.rb +104 -0
- data/lib/dapp/project/paint.rb +16 -0
- data/lib/dapp/project/ssh_agent.rb +77 -0
- data/lib/dapp/version.rb +1 -1
- metadata +74 -27
- data/lib/dapp/application/deps/gitartifact.rb +0 -39
- data/lib/dapp/application/logging.rb +0 -120
- data/lib/dapp/application/system_shellout.rb +0 -63
- data/lib/dapp/build/stage/chef_cookbooks.rb +0 -33
- data/lib/dapp/build/stage/infra_setup.rb +0 -27
- data/lib/dapp/build/stage/install.rb +0 -27
- data/lib/dapp/build/stage/setup.rb +0 -27
- data/lib/dapp/build/stage/source_1.rb +0 -21
- data/lib/dapp/build/stage/source_1_dependencies.rb +0 -27
- data/lib/dapp/build/stage/source_2.rb +0 -17
- data/lib/dapp/build/stage/source_2_dependencies.rb +0 -17
- data/lib/dapp/build/stage/source_3.rb +0 -17
- data/lib/dapp/build/stage/source_3_dependencies.rb +0 -23
- data/lib/dapp/build/stage/source_4.rb +0 -21
- data/lib/dapp/build/stage/source_4_dependencies.rb +0 -27
- data/lib/dapp/cli/smartpush.rb +0 -19
- data/lib/dapp/controller.rb +0 -119
- data/lib/dapp/error/controller.rb +0 -6
- data/lib/dapp/helper/log.rb +0 -73
@@ -38,6 +38,9 @@ module Dapp
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def add_local_cookbook_path(name, path)
|
41
|
+
raise(::Dapp::Builder::Chef::Error, code: :berksfile_absolute_path_forbidden,
|
42
|
+
data: { cookbook: name, path: path }) if path.start_with? '/'
|
43
|
+
|
41
44
|
@local_cookbooks[name] = {
|
42
45
|
name: name,
|
43
46
|
path: home_path.join(path)
|
data/lib/dapp/builder/shell.rb
CHANGED
@@ -2,14 +2,15 @@ module Dapp
|
|
2
2
|
module Builder
|
3
3
|
# Shell
|
4
4
|
class Shell < Base
|
5
|
-
[:
|
5
|
+
[:before_install, :before_setup, :install, :setup].each do |stage|
|
6
6
|
define_method("#{stage}_checksum") do
|
7
7
|
[application.config._shell.public_send("_#{stage}"),
|
8
8
|
application.config._shell.public_send("_#{stage}_cache_version")].flatten
|
9
9
|
end
|
10
10
|
define_method("#{stage}?") { !stage_empty?(stage) }
|
11
|
-
define_method(
|
12
|
-
image.add_command(
|
11
|
+
define_method(stage.to_s) do |image|
|
12
|
+
image.add_command("export DAPP_BUILD_STAGE=#{stage}",
|
13
|
+
*stage_commands(stage)) unless stage_empty?(stage)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
data/lib/dapp/cli.rb
CHANGED
@@ -7,18 +7,20 @@ module Dapp
|
|
7
7
|
include Mixlib::CLI
|
8
8
|
include Helper::Trivia
|
9
9
|
|
10
|
-
SUBCOMMANDS = %w(build
|
10
|
+
SUBCOMMANDS = %w(build push spush list run stages cleanup bp).freeze
|
11
11
|
|
12
12
|
banner <<BANNER.freeze
|
13
13
|
Usage: dapp [options] sub-command [sub-command options]
|
14
14
|
|
15
15
|
Available subcommands: (for details, dapp SUB-COMMAND --help)
|
16
16
|
|
17
|
-
dapp build [options] [PATTERN ...]
|
18
|
-
dapp
|
19
|
-
dapp
|
20
|
-
dapp
|
21
|
-
dapp
|
17
|
+
dapp build [options] [APPS PATTERN ...]
|
18
|
+
dapp bp [options] [APPS PATTERN ...] REPO
|
19
|
+
dapp push [options] [APP PATTERN] REPO
|
20
|
+
dapp spush [options] [APPS PATTERN ...] REPO
|
21
|
+
dapp list [options] [APPS PATTERN ...]
|
22
|
+
dapp run [options] [APP PATTERN] [DOCKER ARGS]
|
23
|
+
dapp cleanup [options] [APPS PATTERN ...]
|
22
24
|
dapp stages
|
23
25
|
|
24
26
|
Options:
|
data/lib/dapp/cli/base.rb
CHANGED
@@ -43,6 +43,11 @@ module Dapp
|
|
43
43
|
default: false,
|
44
44
|
boolean: true
|
45
45
|
|
46
|
+
option :dev,
|
47
|
+
long: '--dev',
|
48
|
+
default: false,
|
49
|
+
boolean: true
|
50
|
+
|
46
51
|
def initialize
|
47
52
|
self.class.options.merge!(Base.options)
|
48
53
|
super()
|
@@ -50,7 +55,7 @@ module Dapp
|
|
50
55
|
|
51
56
|
def run(argv = ARGV)
|
52
57
|
self.class.parse_options(self, argv)
|
53
|
-
|
58
|
+
Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase)
|
54
59
|
end
|
55
60
|
end
|
56
61
|
end
|
data/lib/dapp/cli/bp.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'mixlib/cli'
|
2
|
+
|
3
|
+
module Dapp
|
4
|
+
class CLI
|
5
|
+
# CLI bp subcommand
|
6
|
+
class Bp < Push
|
7
|
+
include Dapp::Helper::Shellout
|
8
|
+
|
9
|
+
banner <<BANNER.freeze
|
10
|
+
Version: #{Dapp::VERSION}
|
11
|
+
|
12
|
+
Usage:
|
13
|
+
dapp bp [options] [APPS PATTERNS] REPO
|
14
|
+
|
15
|
+
APPS PATTERN Applications to process [default: *].
|
16
|
+
REPO Pushed image name.
|
17
|
+
|
18
|
+
Options:
|
19
|
+
BANNER
|
20
|
+
option :tmp_dir_prefix,
|
21
|
+
long: '--tmp-dir-prefix PREFIX',
|
22
|
+
description: 'Tmp directory prefix'
|
23
|
+
|
24
|
+
option :lock_timeout,
|
25
|
+
long: '--lock-timeout TIMEOUT',
|
26
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
27
|
+
proc: ->(v) { v.to_i }
|
28
|
+
|
29
|
+
option :git_artifact_branch,
|
30
|
+
long: '--git-artifact-branch BRANCH',
|
31
|
+
description: 'Default branch to archive artifacts from'
|
32
|
+
|
33
|
+
option :ssh_key,
|
34
|
+
long: '--ssh-key SSH_KEY',
|
35
|
+
description: ['Enable only specified ssh keys ',
|
36
|
+
'(use system ssh-agent by default)'].join,
|
37
|
+
default: nil,
|
38
|
+
proc: ->(v) { composite_options(:ssh_key) << v }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/dapp/cli/build.rb
CHANGED
@@ -10,9 +10,9 @@ module Dapp
|
|
10
10
|
Version: #{Dapp::VERSION}
|
11
11
|
|
12
12
|
Usage:
|
13
|
-
dapp build [options] [PATTERN ...]
|
13
|
+
dapp build [options] [APPS PATTERN ...]
|
14
14
|
|
15
|
-
PATTERN
|
15
|
+
APPS PATTERN Applications to process [default: *].
|
16
16
|
|
17
17
|
Options:
|
18
18
|
BANNER
|
@@ -20,6 +20,11 @@ BANNER
|
|
20
20
|
long: '--tmp-dir-prefix PREFIX',
|
21
21
|
description: 'Tmp directory prefix'
|
22
22
|
|
23
|
+
option :lock_timeout,
|
24
|
+
long: '--lock-timeout TIMEOUT',
|
25
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
26
|
+
proc: ->(v) { v.to_i }
|
27
|
+
|
23
28
|
option :git_artifact_branch,
|
24
29
|
long: '--git-artifact-branch BRANCH',
|
25
30
|
description: 'Default branch to archive artifacts from'
|
@@ -37,8 +42,16 @@ BANNER
|
|
37
42
|
option :introspect_stage,
|
38
43
|
long: '--introspect-stage STAGE',
|
39
44
|
proc: proc { |v| v.to_sym },
|
40
|
-
in: [nil, :from, :
|
41
|
-
:
|
45
|
+
in: [nil, :from, :before_install, :g_a_archive, :g_a_pre_install_patch, :install, :g_a_post_install_patch,
|
46
|
+
:artifact, :before_setup, :g_a_pre_setup_patch, :chef_cookbooks, :setup, :g_a_post_setup_patch,
|
47
|
+
:g_a_latest_patch, :docker_instructions]
|
48
|
+
|
49
|
+
option :ssh_key,
|
50
|
+
long: '--ssh-key SSH_KEY',
|
51
|
+
description: ['Enable only specified ssh keys ',
|
52
|
+
'(use system ssh-agent by default)'].join,
|
53
|
+
default: nil,
|
54
|
+
proc: ->(v) { composite_options(:ssh_key) << v }
|
42
55
|
end
|
43
56
|
end
|
44
57
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'mixlib/cli'
|
2
|
+
|
3
|
+
module Dapp
|
4
|
+
class CLI
|
5
|
+
# Cleanup subcommand
|
6
|
+
class Cleanup < Base
|
7
|
+
banner <<BANNER.freeze
|
8
|
+
Version: #{Dapp::VERSION}
|
9
|
+
|
10
|
+
Usage:
|
11
|
+
dapp cleanup [options] [APPS PATTERN ...]
|
12
|
+
|
13
|
+
APPS PATTERN Applications to process [default: *].
|
14
|
+
|
15
|
+
Options:
|
16
|
+
BANNER
|
17
|
+
|
18
|
+
option :lock_timeout,
|
19
|
+
long: '--lock-timeout TIMEOUT',
|
20
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
21
|
+
proc: ->(v) { v.to_i }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/dapp/cli/list.rb
CHANGED
@@ -8,9 +8,9 @@ module Dapp
|
|
8
8
|
Version: #{Dapp::VERSION}
|
9
9
|
|
10
10
|
Usage:
|
11
|
-
dapp list [options] [PATTERN ...]
|
11
|
+
dapp list [options] [APPS PATTERN ...]
|
12
12
|
|
13
|
-
PATTERN
|
13
|
+
APPS PATTERN Applications to process [default: *].
|
14
14
|
|
15
15
|
Options:
|
16
16
|
BANNER
|
data/lib/dapp/cli/push.rb
CHANGED
@@ -8,12 +8,17 @@ module Dapp
|
|
8
8
|
Version: #{Dapp::VERSION}
|
9
9
|
|
10
10
|
Usage:
|
11
|
-
dapp push [options] [PATTERN
|
11
|
+
dapp push [options] [APP PATTERN] REPO
|
12
12
|
|
13
|
-
PATTERN
|
13
|
+
APP PATTERN Applications to process [default: *].
|
14
14
|
REPO Pushed image name.
|
15
|
+
|
15
16
|
Options:
|
16
17
|
BANNER
|
18
|
+
option :lock_timeout,
|
19
|
+
long: '--lock-timeout TIMEOUT',
|
20
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
21
|
+
proc: ->(v) { v.to_i }
|
17
22
|
|
18
23
|
option :git_artifact_branch,
|
19
24
|
long: '--git-artifact-branch BRANCH',
|
@@ -45,16 +50,10 @@ BANNER
|
|
45
50
|
description: 'Tag by git commit',
|
46
51
|
boolean: true
|
47
52
|
|
48
|
-
option :force,
|
49
|
-
long: '--force',
|
50
|
-
description: 'Override existing image',
|
51
|
-
default: false,
|
52
|
-
boolean: true
|
53
|
-
|
54
53
|
def run(argv = ARGV)
|
55
54
|
self.class.parse_options(self, argv)
|
56
55
|
repo = self.class.required_argument(self)
|
57
|
-
|
56
|
+
Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase, repo)
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
data/lib/dapp/cli/run.rb
CHANGED
@@ -8,12 +8,11 @@ module Dapp
|
|
8
8
|
Version: #{Dapp::VERSION}
|
9
9
|
|
10
10
|
Usage:
|
11
|
-
dapp run [options] [PATTERN
|
11
|
+
dapp run [options] [APP PATTERN] [DOCKER ARGS]
|
12
12
|
|
13
|
-
PATTERN
|
13
|
+
APP PATTERN Application to process [default: *].
|
14
14
|
DOCKER ARGS Docker run options and command separated by '--'
|
15
15
|
|
16
|
-
|
17
16
|
Options:
|
18
17
|
BANNER
|
19
18
|
|
@@ -49,7 +48,7 @@ BANNER
|
|
49
48
|
index = filtered_args.index('--') || filtered_args.count
|
50
49
|
docker_options = index.nonzero? ? filtered_args.slice(0..index - 1) : []
|
51
50
|
command = filtered_args.slice(index + 1..-1) || []
|
52
|
-
|
51
|
+
Project.new(cli_options: config, apps_patterns: pattern).run(docker_options, command)
|
53
52
|
end
|
54
53
|
end
|
55
54
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'mixlib/cli'
|
2
|
+
|
3
|
+
module Dapp
|
4
|
+
class CLI
|
5
|
+
# CLI spush subcommand
|
6
|
+
class Spush < Push
|
7
|
+
banner <<BANNER.freeze
|
8
|
+
Version: #{Dapp::VERSION}
|
9
|
+
|
10
|
+
Usage:
|
11
|
+
dapp spush [options] [APPS PATTERN ...] REPO
|
12
|
+
|
13
|
+
APPS PATTERN Applications to process [default: *].
|
14
|
+
REPO Pushed image name.
|
15
|
+
|
16
|
+
Options:
|
17
|
+
BANNER
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/dapp/cli/stages.rb
CHANGED
@@ -3,18 +3,22 @@ require 'mixlib/cli'
|
|
3
3
|
module Dapp
|
4
4
|
class CLI
|
5
5
|
class Stages
|
6
|
-
#
|
6
|
+
# stages cleanup subcommand
|
7
7
|
class Cleanup < Base
|
8
8
|
banner <<BANNER.freeze
|
9
9
|
Version: #{Dapp::VERSION}
|
10
10
|
|
11
11
|
Usage:
|
12
|
-
dapp stages cleanup [options] [PATTERN ...]
|
12
|
+
dapp stages cleanup [options] [APPS PATTERN ...] [REPO]
|
13
|
+
|
14
|
+
APPS PATTERN Applications to process [default: *].
|
15
|
+
|
13
16
|
Options:
|
14
17
|
BANNER
|
15
18
|
def run(argv = ARGV)
|
16
19
|
self.class.parse_options(self, argv)
|
17
|
-
|
20
|
+
repo = self.class.required_argument(self)
|
21
|
+
Project.new(cli_options: config, apps_patterns: cli_arguments).stages_cleanup(repo)
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
@@ -3,18 +3,21 @@ require 'mixlib/cli'
|
|
3
3
|
module Dapp
|
4
4
|
class CLI
|
5
5
|
class Stages
|
6
|
-
#
|
6
|
+
# stages flush subcommand
|
7
7
|
class Flush < Base
|
8
8
|
banner <<BANNER.freeze
|
9
9
|
Version: #{Dapp::VERSION}
|
10
10
|
|
11
11
|
Usage:
|
12
|
-
dapp stages flush [options] [PATTERN ...]
|
12
|
+
dapp stages flush [options] [APPS PATTERN ...]
|
13
|
+
|
14
|
+
APPS PATTERN Applications to process [default: *].
|
15
|
+
|
13
16
|
Options:
|
14
17
|
BANNER
|
15
18
|
def run(argv = ARGV)
|
16
19
|
self.class.parse_options(self, argv)
|
17
|
-
|
20
|
+
Project.new(cli_options: config, apps_patterns: cli_arguments).stages_flush
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
@@ -34,6 +34,14 @@ module Dapp
|
|
34
34
|
@_setup_dependencies.concat(args)
|
35
35
|
end
|
36
36
|
|
37
|
+
def builder(type)
|
38
|
+
project.log_warning(desc: { code: 'excess_builder_instruction', context: 'warning' }) if @_chef.empty? && @_shell.empty?
|
39
|
+
raise Error::Config, code: :builder_type_unsupported, data: { type: type } unless [:chef, :shell].include?((type = type.to_sym))
|
40
|
+
another_builder = [:chef, :shell].find { |t| t != type }
|
41
|
+
instance_variable_set(:"@_#{another_builder}", Config.const_get(another_builder.capitalize).new)
|
42
|
+
@_builder = type
|
43
|
+
end
|
44
|
+
|
37
45
|
def chef
|
38
46
|
raise Error::Config, code: :builder_type_conflict unless _builder == :chef
|
39
47
|
@_chef ||= Chef.new
|
@@ -44,6 +52,10 @@ module Dapp
|
|
44
52
|
@_shell ||= Shell.new
|
45
53
|
end
|
46
54
|
|
55
|
+
def docker
|
56
|
+
@_docker ||= Docker.new
|
57
|
+
end
|
58
|
+
|
47
59
|
def artifact(where_to_add, **options, &blk)
|
48
60
|
@_artifact << begin
|
49
61
|
config = clone.tap do |app|
|
@@ -59,17 +71,6 @@ module Dapp
|
|
59
71
|
@_git_artifact ||= GitArtifact.new
|
60
72
|
end
|
61
73
|
|
62
|
-
def docker
|
63
|
-
@_docker ||= Docker.new
|
64
|
-
end
|
65
|
-
|
66
|
-
def builder(type)
|
67
|
-
raise Error::Config, code: :builder_type_unsupported, data: { type: type } unless [:chef, :shell].include?((type = type.to_sym))
|
68
|
-
another_builder = [:chef, :shell].find { |t| t != type }
|
69
|
-
instance_variable_set(:"@_#{another_builder}", Config.const_get(another_builder.capitalize).new)
|
70
|
-
@_builder = type
|
71
|
-
end
|
72
|
-
|
73
74
|
def _name
|
74
75
|
(@_name || @_basename).tap do |name|
|
75
76
|
reg = '^[[[:alnum:]]_.-]*$'
|
@@ -98,11 +99,16 @@ module Dapp
|
|
98
99
|
_app_chain.first
|
99
100
|
end
|
100
101
|
|
102
|
+
protected
|
103
|
+
|
104
|
+
attr_accessor :project
|
105
|
+
|
101
106
|
private
|
102
107
|
|
103
108
|
# rubocop:disable Metrics/AbcSize
|
104
109
|
def clone
|
105
110
|
Application.new(self).tap do |app|
|
111
|
+
app.instance_variable_set(:'@project', project)
|
106
112
|
app.instance_variable_set(:'@_builder', _builder)
|
107
113
|
app.instance_variable_set(:'@_home_path', _home_path)
|
108
114
|
app.instance_variable_set(:'@_basename', _basename)
|
data/lib/dapp/config/chef.rb
CHANGED
data/lib/dapp/config/docker.rb
CHANGED
@@ -14,8 +14,9 @@ module Dapp
|
|
14
14
|
@_onbuild = []
|
15
15
|
end
|
16
16
|
|
17
|
-
def from(
|
18
|
-
|
17
|
+
def from(image, cache_version: nil)
|
18
|
+
raise(Error::Config, code: :docker_from_incorrect, data: { name: image }) unless image =~ /^[[^ ].]+:[[^ ].]+$/
|
19
|
+
@_from = image
|
19
20
|
@_from_cache_version = cache_version
|
20
21
|
end
|
21
22
|
|
@@ -33,13 +33,12 @@ module Dapp
|
|
33
33
|
|
34
34
|
# Remote
|
35
35
|
class Remote < Local
|
36
|
-
attr_accessor :_url, :_name, :_branch
|
36
|
+
attr_accessor :_url, :_name, :_branch
|
37
37
|
|
38
38
|
def initialize(url, where_to_add, **options)
|
39
39
|
@_url = url
|
40
40
|
@_name = url.gsub(%r{.*?([^\/ ]+)\.git}, '\\1')
|
41
41
|
@_branch = options.delete(:branch)
|
42
|
-
@_ssg_key_path = options.delete(:ssg_key_path)
|
43
42
|
super(where_to_add, **options)
|
44
43
|
end
|
45
44
|
|