dapp 0.8.0 → 0.9.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 +5 -5
- data/config/en/common.yml +6 -4
- data/config/en/net_status.yml +8 -7
- data/lib/dapp.rb +157 -139
- data/lib/dapp/cli.rb +6 -16
- data/lib/dapp/cli/base.rb +3 -5
- data/lib/dapp/config/base.rb +19 -7
- data/lib/dapp/config/directive/base.rb +0 -1
- data/lib/dapp/config/error/config.rb +7 -0
- data/lib/dapp/core_ext/hash.rb +0 -2
- data/lib/dapp/core_ext/pathname.rb +1 -3
- data/lib/dapp/{project.rb → dapp.rb} +2 -21
- data/lib/dapp/{project → dapp}/chef.rb +2 -4
- data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
- data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
- data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
- data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
- data/lib/dapp/{project → dapp}/lock.rb +3 -5
- data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
- data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
- data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
- data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
- data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
- data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
- data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
- data/lib/dapp/dimg.rb +1 -192
- data/lib/dapp/dimg/artifact.rb +24 -0
- data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
- data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
- data/lib/dapp/dimg/build/stage/base.rb +210 -0
- data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
- data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
- data/lib/dapp/dimg/build/stage/from.rb +50 -0
- data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
- data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
- data/lib/dapp/dimg/builder.rb +6 -0
- data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
- data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
- data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
- data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
- data/lib/dapp/dimg/cli/base.rb +16 -0
- data/lib/dapp/dimg/cli/bp.rb +37 -0
- data/lib/dapp/dimg/cli/build.rb +64 -0
- data/lib/dapp/dimg/cli/build_context.rb +18 -0
- data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
- data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
- data/lib/dapp/dimg/cli/cleanup.rb +22 -0
- data/lib/dapp/dimg/cli/cli.rb +1 -0
- data/lib/dapp/dimg/cli/dimg.rb +30 -0
- data/lib/dapp/dimg/cli/list.rb +17 -0
- data/lib/dapp/dimg/cli/mrproper.rb +26 -0
- data/lib/dapp/dimg/cli/push.rb +61 -0
- data/lib/dapp/dimg/cli/run.rb +59 -0
- data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
- data/lib/dapp/dimg/cli/stage_image.rb +24 -0
- data/lib/dapp/dimg/cli/stages.rb +22 -0
- data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
- data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
- data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
- data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
- data/lib/dapp/dimg/cli/stages/push.rb +24 -0
- data/lib/dapp/dimg/cli/tag.rb +24 -0
- data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
- data/lib/dapp/dimg/config/artifact_group.rb +47 -0
- data/lib/dapp/dimg/config/base.rb +7 -0
- data/lib/dapp/dimg/config/dimg.rb +24 -0
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
- data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
- data/lib/dapp/dimg/config/dimg_group.rb +61 -0
- data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
- data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
- data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
- data/lib/dapp/dimg/config/directive/base.rb +9 -0
- data/lib/dapp/dimg/config/directive/chef.rb +68 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
- data/lib/dapp/dimg/config/directive/mount.rb +27 -0
- data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
- data/lib/dapp/dimg/dapp/command.rb +21 -0
- data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
- data/lib/dapp/dimg/dapp/command/build.rb +22 -0
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
- data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
- data/lib/dapp/dimg/dapp/command/common.rb +96 -0
- data/lib/dapp/dimg/dapp/command/list.rb +19 -0
- data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
- data/lib/dapp/dimg/dapp/command/push.rb +27 -0
- data/lib/dapp/dimg/dapp/command/run.rb +15 -0
- data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
- data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
- data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
- data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
- data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
- data/lib/dapp/dimg/dimg.rb +192 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
- data/lib/dapp/dimg/dimg/path.rb +37 -0
- data/lib/dapp/dimg/dimg/stages.rb +60 -0
- data/lib/dapp/dimg/dimg/tags.rb +65 -0
- data/lib/dapp/dimg/docker_registry.rb +37 -0
- data/lib/dapp/dimg/docker_registry/base.rb +109 -0
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
- data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
- data/lib/dapp/dimg/docker_registry/default.rb +18 -0
- data/lib/dapp/dimg/error/base.rb +7 -0
- data/lib/dapp/dimg/error/build.rb +7 -0
- data/lib/dapp/dimg/error/chef.rb +11 -0
- data/lib/dapp/dimg/error/command.rb +7 -0
- data/lib/dapp/dimg/error/config.rb +7 -0
- data/lib/dapp/dimg/error/dimg.rb +7 -0
- data/lib/dapp/dimg/error/lock.rb +7 -0
- data/lib/dapp/dimg/error/registry.rb +7 -0
- data/lib/dapp/dimg/error/rugged.rb +7 -0
- data/lib/dapp/dimg/error/shellout.rb +7 -0
- data/lib/dapp/dimg/error/tar_writer.rb +7 -0
- data/lib/dapp/dimg/exception/base.rb +7 -0
- data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
- data/lib/dapp/dimg/exception/registry.rb +7 -0
- data/lib/dapp/dimg/filelock.rb +43 -0
- data/lib/dapp/dimg/git_artifact.rb +241 -18
- data/lib/dapp/dimg/git_repo/base.rb +90 -0
- data/lib/dapp/dimg/git_repo/own.rb +39 -0
- data/lib/dapp/dimg/git_repo/remote.rb +50 -0
- data/lib/dapp/dimg/image/argument.rb +143 -0
- data/lib/dapp/dimg/image/docker.rb +127 -0
- data/lib/dapp/dimg/image/scratch.rb +32 -0
- data/lib/dapp/dimg/image/stage.rb +95 -0
- data/lib/dapp/dimg/lock/base.rb +51 -0
- data/lib/dapp/dimg/lock/file.rb +48 -0
- data/lib/dapp/error/base.rb +0 -1
- data/lib/dapp/error/dapp.rb +5 -0
- data/lib/dapp/error/dappfile.rb +0 -1
- data/lib/dapp/error/shellout.rb +0 -1
- data/lib/dapp/exception/base.rb +0 -1
- data/lib/dapp/helper/cli.rb +5 -6
- data/lib/dapp/helper/net_status.rb +0 -1
- data/lib/dapp/helper/sha256.rb +0 -1
- data/lib/dapp/helper/trivia.rb +0 -1
- data/lib/dapp/prctl.rb +0 -1
- data/lib/dapp/version.rb +1 -2
- metadata +172 -140
- data/lib/dapp/artifact.rb +0 -23
- data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
- data/lib/dapp/build/stage/artifact_base.rb +0 -80
- data/lib/dapp/build/stage/artifact_default.rb +0 -63
- data/lib/dapp/build/stage/base.rb +0 -203
- data/lib/dapp/build/stage/before_install.rb +0 -32
- data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/before_setup.rb +0 -30
- data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
- data/lib/dapp/build/stage/build_artifact.rb +0 -36
- data/lib/dapp/build/stage/docker_instructions.rb +0 -24
- data/lib/dapp/build/stage/from.rb +0 -34
- data/lib/dapp/build/stage/ga_archive.rb +0 -27
- data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
- data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
- data/lib/dapp/build/stage/ga_base.rb +0 -79
- data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
- data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
- data/lib/dapp/build/stage/import_artifact.rb +0 -65
- data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/install.rb +0 -40
- data/lib/dapp/build/stage/mod/group.rb +0 -42
- data/lib/dapp/build/stage/mod/logging.rb +0 -104
- data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/setup/setup.rb +0 -40
- data/lib/dapp/builder/chef/berksfile.rb +0 -78
- data/lib/dapp/builder/chef/cookbook.rb +0 -257
- data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
- data/lib/dapp/builder/chef/error.rb +0 -12
- data/lib/dapp/cli/bp.rb +0 -37
- data/lib/dapp/cli/build.rb +0 -60
- data/lib/dapp/cli/cleanup.rb +0 -22
- data/lib/dapp/cli/list.rb +0 -17
- data/lib/dapp/cli/mrproper.rb +0 -26
- data/lib/dapp/cli/push.rb +0 -61
- data/lib/dapp/cli/run.rb +0 -53
- data/lib/dapp/cli/stage_image.rb +0 -24
- data/lib/dapp/cli/stages.rb +0 -23
- data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
- data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
- data/lib/dapp/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/cli/stages/pull.rb +0 -28
- data/lib/dapp/cli/stages/push.rb +0 -24
- data/lib/dapp/cli/tag.rb +0 -24
- data/lib/dapp/config/artifact_dimg.rb +0 -20
- data/lib/dapp/config/artifact_group.rb +0 -56
- data/lib/dapp/config/dimg.rb +0 -23
- data/lib/dapp/config/dimg/instance_methods.rb +0 -194
- data/lib/dapp/config/dimg/validation.rb +0 -125
- data/lib/dapp/config/dimg_group.rb +0 -60
- data/lib/dapp/config/dimg_group_base.rb +0 -53
- data/lib/dapp/config/dimg_group_main.rb +0 -21
- data/lib/dapp/config/directive/artifact.rb +0 -69
- data/lib/dapp/config/directive/artifact_base.rb +0 -93
- data/lib/dapp/config/directive/chef.rb +0 -57
- data/lib/dapp/config/directive/docker/artifact.rb +0 -15
- data/lib/dapp/config/directive/docker/base.rb +0 -20
- data/lib/dapp/config/directive/docker/dimg.rb +0 -81
- data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
- data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
- data/lib/dapp/config/directive/mount.rb +0 -26
- data/lib/dapp/config/directive/shell/artifact.rb +0 -17
- data/lib/dapp/config/directive/shell/dimg.rb +0 -65
- data/lib/dapp/dimg/path.rb +0 -37
- data/lib/dapp/dimg/stages.rb +0 -59
- data/lib/dapp/dimg/tags.rb +0 -65
- data/lib/dapp/docker_registry.rb +0 -36
- data/lib/dapp/docker_registry/base.rb +0 -109
- data/lib/dapp/docker_registry/default.rb +0 -18
- data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
- data/lib/dapp/docker_registry/mod/request.rb +0 -32
- data/lib/dapp/error/build.rb +0 -6
- data/lib/dapp/error/config.rb +0 -6
- data/lib/dapp/error/dimg.rb +0 -6
- data/lib/dapp/error/image.rb +0 -6
- data/lib/dapp/error/project.rb +0 -6
- data/lib/dapp/error/registry.rb +0 -6
- data/lib/dapp/error/rugged.rb +0 -6
- data/lib/dapp/error/tar_writer.rb +0 -6
- data/lib/dapp/exception/introspect_image.rb +0 -6
- data/lib/dapp/exception/registry.rb +0 -6
- data/lib/dapp/filelock.rb +0 -43
- data/lib/dapp/git_artifact.rb +0 -241
- data/lib/dapp/git_repo/base.rb +0 -88
- data/lib/dapp/git_repo/own.rb +0 -38
- data/lib/dapp/git_repo/remote.rb +0 -49
- data/lib/dapp/image/argument.rb +0 -134
- data/lib/dapp/image/docker.rb +0 -115
- data/lib/dapp/image/scratch.rb +0 -32
- data/lib/dapp/image/stage.rb +0 -94
- data/lib/dapp/lock/base.rb +0 -51
- data/lib/dapp/lock/error.rb +0 -14
- data/lib/dapp/lock/file.rb +0 -45
- data/lib/dapp/project/command/bp.rb +0 -21
- data/lib/dapp/project/command/build.rb +0 -20
- data/lib/dapp/project/command/cleanup.rb +0 -24
- data/lib/dapp/project/command/common.rb +0 -96
- data/lib/dapp/project/command/list.rb +0 -20
- data/lib/dapp/project/command/mrproper.rb +0 -69
- data/lib/dapp/project/command/push.rb +0 -28
- data/lib/dapp/project/command/run.rb +0 -15
- data/lib/dapp/project/command/spush.rb +0 -18
- data/lib/dapp/project/command/stage_image.rb +0 -15
- data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
- data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
- data/lib/dapp/project/command/stages/common.rb +0 -86
- data/lib/dapp/project/command/stages/flush_local.rb +0 -22
- data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
- data/lib/dapp/project/command/stages/pull.rb +0 -27
- data/lib/dapp/project/command/stages/push.rb +0 -23
- data/lib/dapp/project/command/tag.rb +0 -18
data/lib/dapp/config/dimg.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Config
|
3
|
-
# Dimg
|
4
|
-
class Dimg < Base
|
5
|
-
include Validation
|
6
|
-
include InstanceMethods
|
7
|
-
|
8
|
-
attr_reader :_name
|
9
|
-
|
10
|
-
def initialize(name, project:)
|
11
|
-
self._name = name
|
12
|
-
super(project: project)
|
13
|
-
end
|
14
|
-
|
15
|
-
def _name=(name)
|
16
|
-
return if name.nil?
|
17
|
-
reg = '^[[[:alnum:]]_.-]*$'
|
18
|
-
raise Error::Config, code: :dimg_name_incorrect, data: { name: name, reg: reg } unless name =~ /#{reg}/
|
19
|
-
@_name = name
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,194 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Config
|
3
|
-
class Dimg < Base
|
4
|
-
# InstanceMethods
|
5
|
-
module InstanceMethods
|
6
|
-
attr_reader :_builder
|
7
|
-
attr_reader :_chef, :_shell, :_docker, :_git_artifact, :_mount, :_artifact
|
8
|
-
attr_reader :_install_dependencies, :_setup_dependencies
|
9
|
-
|
10
|
-
def dev_mode
|
11
|
-
@_dev_mode = true
|
12
|
-
end
|
13
|
-
|
14
|
-
def install_depends_on(*args)
|
15
|
-
_install_dependencies.concat(args)
|
16
|
-
end
|
17
|
-
|
18
|
-
def setup_depends_on(*args)
|
19
|
-
_setup_dependencies.concat(args)
|
20
|
-
end
|
21
|
-
|
22
|
-
def chef(&blk)
|
23
|
-
builder(:chef)
|
24
|
-
directive_eval(_chef, &blk)
|
25
|
-
end
|
26
|
-
|
27
|
-
def shell(&blk)
|
28
|
-
builder(:shell)
|
29
|
-
directive_eval(_shell, &blk)
|
30
|
-
end
|
31
|
-
|
32
|
-
def docker(&blk)
|
33
|
-
directive_eval(_docker, &blk)
|
34
|
-
end
|
35
|
-
|
36
|
-
def artifact(&blk)
|
37
|
-
_artifact.concat begin
|
38
|
-
pass_to_custom(ArtifactGroup.new(project: project), :clone_to_artifact).tap do |artifact_group|
|
39
|
-
artifact_group.instance_eval(&blk) if block_given?
|
40
|
-
end._export
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def git(url = nil, &blk)
|
45
|
-
type = url.nil? ? :local : :remote
|
46
|
-
_git_artifact.send(type, url.to_s, &blk)
|
47
|
-
end
|
48
|
-
|
49
|
-
def mount(to, &blk)
|
50
|
-
_mount << Directive::Mount.new(to, project: project, &blk)
|
51
|
-
end
|
52
|
-
|
53
|
-
def _dev_mode
|
54
|
-
!!@_dev_mode
|
55
|
-
end
|
56
|
-
|
57
|
-
def _builder
|
58
|
-
@_builder || :none
|
59
|
-
end
|
60
|
-
|
61
|
-
def _chef
|
62
|
-
@_chef ||= Directive::Chef.new(project: project)
|
63
|
-
end
|
64
|
-
|
65
|
-
def _shell
|
66
|
-
@_shell ||= Directive::Shell::Dimg.new(project: project)
|
67
|
-
end
|
68
|
-
|
69
|
-
def _docker
|
70
|
-
@_docker ||= Directive::Docker::Dimg.new(project: project)
|
71
|
-
end
|
72
|
-
|
73
|
-
def _mount
|
74
|
-
@_mount ||= []
|
75
|
-
end
|
76
|
-
|
77
|
-
def _git_artifact
|
78
|
-
@_git_artifact ||= GitArtifact.new(project: project)
|
79
|
-
end
|
80
|
-
|
81
|
-
[:build_dir, :tmp_dir].each do |mount_type|
|
82
|
-
define_method "_#{mount_type}_mount" do
|
83
|
-
_mount.select { |m| m._type == mount_type }
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def _install_dependencies
|
88
|
-
@_install_dependencies ||= []
|
89
|
-
end
|
90
|
-
|
91
|
-
def _setup_dependencies
|
92
|
-
@_setup_dependencies ||= []
|
93
|
-
end
|
94
|
-
|
95
|
-
def _artifact
|
96
|
-
@_artifact ||= []
|
97
|
-
end
|
98
|
-
|
99
|
-
[:before, :after].each do |order|
|
100
|
-
[:setup, :install].each do |stage|
|
101
|
-
define_method "_#{order}_#{stage}_artifact" do
|
102
|
-
_artifact.select do |art|
|
103
|
-
art.public_send("_#{order}") == stage
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def _import_artifact
|
110
|
-
_artifact.select(&:not_associated?)
|
111
|
-
end
|
112
|
-
|
113
|
-
# GitArtifact
|
114
|
-
class GitArtifact < Directive::Base
|
115
|
-
attr_reader :_local, :_remote
|
116
|
-
|
117
|
-
def initialize(**kwargs, &blk)
|
118
|
-
@_local = []
|
119
|
-
@_remote = []
|
120
|
-
|
121
|
-
super(**kwargs, &blk)
|
122
|
-
end
|
123
|
-
|
124
|
-
def local(_, &blk)
|
125
|
-
@_local << Directive::GitArtifactLocal.new(project: project, &blk)
|
126
|
-
end
|
127
|
-
|
128
|
-
def remote(repo_url, &blk)
|
129
|
-
@_remote << Directive::GitArtifactRemote.new(repo_url, project: project, &blk)
|
130
|
-
end
|
131
|
-
|
132
|
-
def _local
|
133
|
-
@_local.map(&:_export).flatten
|
134
|
-
end
|
135
|
-
|
136
|
-
def _remote
|
137
|
-
@_remote.map(&:_export).flatten
|
138
|
-
end
|
139
|
-
|
140
|
-
protected
|
141
|
-
|
142
|
-
def empty?
|
143
|
-
(_local + _remote).empty?
|
144
|
-
end
|
145
|
-
|
146
|
-
def validate!
|
147
|
-
(_local + _remote).each { |exp| exp.send(:validate!) }
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
protected
|
152
|
-
|
153
|
-
def builder(type)
|
154
|
-
@_builder = type if _builder == :none
|
155
|
-
raise Error::Config, code: :builder_type_conflict unless @_builder == type
|
156
|
-
end
|
157
|
-
|
158
|
-
def directive_eval(directive, &blk)
|
159
|
-
directive.instance_eval(&blk) if block_given?
|
160
|
-
directive
|
161
|
-
end
|
162
|
-
|
163
|
-
def pass_to_default(dimg)
|
164
|
-
pass_to_custom(dimg, :clone)
|
165
|
-
end
|
166
|
-
|
167
|
-
def pass_to_custom(obj, clone_method)
|
168
|
-
passed_directives.each do |directive|
|
169
|
-
next if (variable = instance_variable_get(directive)).nil?
|
170
|
-
|
171
|
-
obj.instance_variable_set(directive, begin
|
172
|
-
case variable
|
173
|
-
when Directive::Base, GitArtifact then variable.send(clone_method)
|
174
|
-
when Symbol then variable
|
175
|
-
when Array then variable.dup
|
176
|
-
when TrueClass, FalseClass then variable
|
177
|
-
else
|
178
|
-
raise
|
179
|
-
end
|
180
|
-
end)
|
181
|
-
end
|
182
|
-
obj
|
183
|
-
end
|
184
|
-
|
185
|
-
def passed_directives
|
186
|
-
[:@_chef, :@_shell, :@_docker,
|
187
|
-
:@_git_artifact, :@_mount,
|
188
|
-
:@_artifact, :@_builder, :@_dev_mode,
|
189
|
-
:@_install_dependencies, :@_setup_dependencies]
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
@@ -1,125 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Config
|
3
|
-
class Dimg < Base
|
4
|
-
# Validation
|
5
|
-
module Validation
|
6
|
-
protected
|
7
|
-
|
8
|
-
def validate!
|
9
|
-
directives_validate!
|
10
|
-
validate_scratch!
|
11
|
-
validate_artifacts!
|
12
|
-
validate_artifacts_artifacts!
|
13
|
-
end
|
14
|
-
|
15
|
-
def validate_scratch!
|
16
|
-
if _docker._from.nil?
|
17
|
-
validate_scratch_directives!
|
18
|
-
validate_scratch_artifacts!
|
19
|
-
else
|
20
|
-
raise Error::Config, code: :stage_artifact_not_associated unless _import_artifact.empty?
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def directives_validate!
|
25
|
-
passed_directives.each do |v|
|
26
|
-
next if (value = instance_variable_get(v)).nil?
|
27
|
-
Array(value).each do |elm|
|
28
|
-
elm.send(:validate!) if elm.methods.include?(:validate!)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def validate_scratch_directives!
|
34
|
-
directives = [[:_shell, :shell], [:_chef, :chef], [:_git_artifact, :git],
|
35
|
-
[:_install_dependencies, :install_depends_on], [:_setup_dependencies, :setup_depends_on],
|
36
|
-
[:_tmp_dir_mount, :mount], [:_build_dir_mount, :mount]]
|
37
|
-
directives.each do |name, user_name|
|
38
|
-
raise Error::Config,
|
39
|
-
code: :scratch_unsupported_directive,
|
40
|
-
data: { directive: user_name } unless public_send(name).send(:empty?)
|
41
|
-
end
|
42
|
-
|
43
|
-
docker_directives = [:_expose, :_env, :_cmd, :_onbuild, :_workdir, :_user, :_entrypoint]
|
44
|
-
docker_directives.each do |directive|
|
45
|
-
value = _docker.public_send(directive)
|
46
|
-
raise Error::Config,
|
47
|
-
code: :scratch_unsupported_directive,
|
48
|
-
data: { directive: "docker.#{directive}" } unless value.nil? || value.send(:empty?)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def validate_scratch_artifacts!
|
53
|
-
raise Error::Config, code: :scratch_artifact_associated unless _associated_artifacts.empty?
|
54
|
-
raise Error::Config, code: :scratch_artifact_required if _import_artifact.empty?
|
55
|
-
_import_artifact.each do |artifact|
|
56
|
-
raise Error::Config, code: :scratch_artifact_docker_from if artifact._config._docker._from.nil?
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def validate_artifacts_artifacts!
|
61
|
-
_artifact.each { |artifact_dimg| artifact_dimg._config.validate! }
|
62
|
-
end
|
63
|
-
|
64
|
-
def validate_artifacts!
|
65
|
-
artifacts = validate_artifact_format(validated_artifacts)
|
66
|
-
loop do
|
67
|
-
break if artifacts.empty?
|
68
|
-
verifiable_artifact = artifacts.shift
|
69
|
-
artifacts.select { |a| a[:to] == verifiable_artifact[:to] }.each do |artifact|
|
70
|
-
next if verifiable_artifact[:index] == artifact[:index]
|
71
|
-
validate_artifact!(verifiable_artifact, artifact)
|
72
|
-
validate_artifact!(artifact, verifiable_artifact)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def validate_artifact_format(artifacts)
|
78
|
-
artifacts.map do |a|
|
79
|
-
path_format = proc { |path| File.expand_path(File.join('/', path, '/'))[1..-1] }
|
80
|
-
|
81
|
-
path_format.call(a._to) =~ %r{^([^\/]*)\/?(.*)$}
|
82
|
-
to = Regexp.last_match(1)
|
83
|
-
include_paths = a._include_paths.dup
|
84
|
-
include_paths << Regexp.last_match(2) unless Regexp.last_match(2).empty?
|
85
|
-
exclude_paths = a._exclude_paths.dup
|
86
|
-
|
87
|
-
{
|
88
|
-
index: artifacts.index(a),
|
89
|
-
to: to,
|
90
|
-
include_paths: include_paths.map(&path_format),
|
91
|
-
exclude_paths: exclude_paths.map(&path_format)
|
92
|
-
}
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def validate_artifact!(verifiable_artifact, artifact)
|
97
|
-
verifiable_artifact[:include_paths].each do |verifiable_path|
|
98
|
-
potential_conflicts = artifact[:include_paths].select { |path| path.start_with?(verifiable_path) }
|
99
|
-
validate_artifact_path!(verifiable_artifact, potential_conflicts)
|
100
|
-
end.empty? && verifiable_artifact[:exclude_paths].empty? && raise(Error::Config, code: :artifact_conflict)
|
101
|
-
validate_artifact_path!(verifiable_artifact, artifact[:include_paths]) if verifiable_artifact[:include_paths].empty?
|
102
|
-
end
|
103
|
-
|
104
|
-
def validate_artifact_path!(verifiable_artifact, potential_conflicts)
|
105
|
-
potential_conflicts.all? do |path|
|
106
|
-
loop do
|
107
|
-
break if verifiable_artifact[:exclude_paths].include?(path) || ((path = File.dirname(path)) == '.')
|
108
|
-
end
|
109
|
-
verifiable_artifact[:exclude_paths].include?(path)
|
110
|
-
end.tap { |res| res || raise(Error::Config, code: :artifact_conflict) }
|
111
|
-
end
|
112
|
-
|
113
|
-
def _associated_artifacts
|
114
|
-
_artifact.select do |art|
|
115
|
-
!(art._before.nil? && art._after.nil?)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def validated_artifacts
|
120
|
-
_artifact + _git_artifact._local + _git_artifact._remote
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Config
|
3
|
-
# DimgGroup
|
4
|
-
class DimgGroup < DimgGroupBase
|
5
|
-
include Dimg::InstanceMethods
|
6
|
-
|
7
|
-
def chef(&blk)
|
8
|
-
check_dimg_directive_order(:chef)
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
def shell(&blk)
|
13
|
-
check_dimg_directive_order(:shell)
|
14
|
-
super
|
15
|
-
end
|
16
|
-
|
17
|
-
def docker(&blk)
|
18
|
-
check_dimg_directive_order(:docker)
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
def artifact(&blk)
|
23
|
-
check_dimg_group_directive_order(:artifact)
|
24
|
-
super
|
25
|
-
end
|
26
|
-
|
27
|
-
def git(url = nil, &blk)
|
28
|
-
check_dimg_directive_order(:git)
|
29
|
-
super
|
30
|
-
end
|
31
|
-
|
32
|
-
def mount(to, &blk)
|
33
|
-
check_dimg_directive_order(:mount)
|
34
|
-
super
|
35
|
-
end
|
36
|
-
|
37
|
-
protected
|
38
|
-
|
39
|
-
def before_dimg_eval(dimg)
|
40
|
-
pass_to_default(dimg)
|
41
|
-
end
|
42
|
-
|
43
|
-
def before_dimg_group_eval(dimg_group)
|
44
|
-
pass_to_default(dimg_group)
|
45
|
-
end
|
46
|
-
|
47
|
-
def check_dimg_directive_order(directive)
|
48
|
-
project.log_config_warning(desc: { code: 'wrong_using_base_directive',
|
49
|
-
data: { directive: directive },
|
50
|
-
context: 'warning' }) if _dimg.any? || _dimg_group.any? || _artifact.any?
|
51
|
-
end
|
52
|
-
|
53
|
-
def check_dimg_group_directive_order(directive)
|
54
|
-
project.log_config_warning(desc: { code: 'wrong_using_directive',
|
55
|
-
data: { directive: directive },
|
56
|
-
context: 'warning' }) if _dimg.any? || _dimg_group.any?
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Config
|
3
|
-
# DimgGroupBase
|
4
|
-
class DimgGroupBase < Base
|
5
|
-
attr_reader :_dimg_group
|
6
|
-
|
7
|
-
def initialize(project:)
|
8
|
-
@_dimg = []
|
9
|
-
@_dimg_group = []
|
10
|
-
|
11
|
-
super(project: project)
|
12
|
-
end
|
13
|
-
|
14
|
-
def dev_mode
|
15
|
-
@_dev_mode = true
|
16
|
-
end
|
17
|
-
|
18
|
-
def dimg(name = nil, &blk)
|
19
|
-
Config::Dimg.new(name, project: project).tap do |dimg|
|
20
|
-
before_dimg_eval(dimg)
|
21
|
-
dimg.instance_eval(&blk) if block_given?
|
22
|
-
@_dimg << dimg
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def dimg_group(&blk)
|
27
|
-
Config::DimgGroup.new(project: project).tap do |dimg_group|
|
28
|
-
before_dimg_group_eval(dimg_group)
|
29
|
-
dimg_group.instance_eval(&blk) if block_given?
|
30
|
-
@_dimg_group << dimg_group
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def _dimg
|
35
|
-
(@_dimg + @_dimg_group.map(&:_dimg)).flatten
|
36
|
-
end
|
37
|
-
|
38
|
-
protected
|
39
|
-
|
40
|
-
def before_dimg_eval(dimg)
|
41
|
-
pass_to_default(dimg)
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_dimg_group_eval(dimg_group)
|
45
|
-
pass_to_default(dimg_group)
|
46
|
-
end
|
47
|
-
|
48
|
-
def pass_to_default(obj)
|
49
|
-
obj.instance_variable_set(:@_dev_mode, @_dev_mode)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|