dapp 0.6.17 → 0.7.1

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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/config/en/common.yml +2 -2
  3. data/config/en/net_status.yml +25 -23
  4. data/lib/dapp.rb +24 -16
  5. data/lib/dapp/artifact.rb +1 -1
  6. data/lib/dapp/build/stage/after_install_artifact.rb +2 -2
  7. data/lib/dapp/build/stage/after_setup_artifact.rb +4 -4
  8. data/lib/dapp/build/stage/artifact_base.rb +25 -25
  9. data/lib/dapp/build/stage/artifact_default.rb +16 -16
  10. data/lib/dapp/build/stage/base.rb +36 -31
  11. data/lib/dapp/build/stage/before_install.rb +8 -8
  12. data/lib/dapp/build/stage/before_install_artifact.rb +2 -2
  13. data/lib/dapp/build/stage/before_setup.rb +8 -8
  14. data/lib/dapp/build/stage/before_setup_artifact.rb +2 -2
  15. data/lib/dapp/build/stage/build_artifact.rb +10 -10
  16. data/lib/dapp/build/stage/docker_instructions.rb +3 -3
  17. data/lib/dapp/build/stage/from.rb +7 -3
  18. data/lib/dapp/build/stage/ga_archive.rb +2 -2
  19. data/lib/dapp/build/stage/ga_archive_dependencies.rb +3 -3
  20. data/lib/dapp/build/stage/ga_artifact_patch.rb +2 -2
  21. data/lib/dapp/build/stage/ga_base.rb +2 -2
  22. data/lib/dapp/build/stage/ga_dependencies_base.rb +2 -2
  23. data/lib/dapp/build/stage/ga_latest_patch.rb +3 -3
  24. data/lib/dapp/build/stage/import_artifact.rb +19 -19
  25. data/lib/dapp/build/stage/install/ga_post_install_patch.rb +2 -2
  26. data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +2 -2
  27. data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +2 -2
  28. data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +2 -2
  29. data/lib/dapp/build/stage/install/install.rb +9 -9
  30. data/lib/dapp/build/stage/mod/group.rb +2 -2
  31. data/lib/dapp/build/stage/mod/logging.rb +19 -19
  32. data/lib/dapp/build/stage/setup/chef_cookbooks.rb +4 -4
  33. data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +2 -2
  34. data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +3 -3
  35. data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +2 -2
  36. data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +2 -2
  37. data/lib/dapp/build/stage/setup/setup.rb +9 -9
  38. data/lib/dapp/builder/base.rb +4 -4
  39. data/lib/dapp/builder/chef.rb +65 -64
  40. data/lib/dapp/builder/none.rb +45 -0
  41. data/lib/dapp/builder/shell.rb +3 -3
  42. data/lib/dapp/cli.rb +9 -10
  43. data/lib/dapp/cli/base.rb +6 -1
  44. data/lib/dapp/cli/bp.rb +2 -2
  45. data/lib/dapp/cli/build.rb +2 -2
  46. data/lib/dapp/cli/cleanup.rb +2 -2
  47. data/lib/dapp/cli/list.rb +2 -2
  48. data/lib/dapp/cli/mrproper.rb +0 -4
  49. data/lib/dapp/cli/push.rb +3 -3
  50. data/lib/dapp/cli/run.rb +3 -3
  51. data/lib/dapp/cli/spush.rb +2 -2
  52. data/lib/dapp/cli/stage_image.rb +2 -2
  53. data/lib/dapp/cli/stages/cleanup_local.rb +3 -3
  54. data/lib/dapp/cli/stages/cleanup_repo.rb +3 -3
  55. data/lib/dapp/cli/stages/flush_local.rb +3 -3
  56. data/lib/dapp/cli/stages/flush_repo.rb +3 -3
  57. data/lib/dapp/cli/stages/pull.rb +3 -3
  58. data/lib/dapp/cli/stages/push.rb +3 -3
  59. data/lib/dapp/config/artifact_dimg.rb +18 -0
  60. data/lib/dapp/config/artifact_group.rb +54 -0
  61. data/lib/dapp/config/base.rb +19 -0
  62. data/lib/dapp/config/dimg.rb +23 -0
  63. data/lib/dapp/config/dimg/instance_methods.rb +179 -0
  64. data/lib/dapp/config/dimg/validation.rb +124 -0
  65. data/lib/dapp/config/dimg_group.rb +56 -0
  66. data/lib/dapp/config/dimg_group_base.rb +36 -0
  67. data/lib/dapp/config/dimg_group_main.rb +21 -0
  68. data/lib/dapp/config/directive/artifact.rb +29 -54
  69. data/lib/dapp/config/directive/artifact_base.rb +92 -0
  70. data/lib/dapp/config/directive/base.rb +22 -0
  71. data/lib/dapp/config/directive/chef.rb +23 -61
  72. data/lib/dapp/config/directive/docker/artifact.rb +3 -14
  73. data/lib/dapp/config/directive/docker/base.rb +3 -78
  74. data/lib/dapp/config/directive/docker/dimg.rb +81 -0
  75. data/lib/dapp/config/directive/git_artifact_local.rb +13 -0
  76. data/lib/dapp/config/directive/git_artifact_remote.rb +55 -0
  77. data/lib/dapp/config/directive/mount.rb +25 -0
  78. data/lib/dapp/config/directive/shell/artifact.rb +3 -24
  79. data/lib/dapp/config/directive/shell/dimg.rb +68 -0
  80. data/lib/dapp/{application.rb → dimg.rb} +12 -33
  81. data/lib/dapp/{application → dimg}/git_artifact.rb +3 -3
  82. data/lib/dapp/{application → dimg}/path.rb +9 -5
  83. data/lib/dapp/{application → dimg}/stages.rb +8 -8
  84. data/lib/dapp/{application → dimg}/tags.rb +6 -6
  85. data/lib/dapp/docker_registry.rb +11 -15
  86. data/lib/dapp/error/dimg.rb +6 -0
  87. data/lib/dapp/git_artifact.rb +19 -20
  88. data/lib/dapp/git_repo/base.rb +6 -6
  89. data/lib/dapp/git_repo/own.rb +4 -4
  90. data/lib/dapp/git_repo/remote.rb +5 -5
  91. data/lib/dapp/image/docker.rb +0 -15
  92. data/lib/dapp/image/stage.rb +12 -22
  93. data/lib/dapp/project.rb +14 -18
  94. data/lib/dapp/project/command/build.rb +2 -2
  95. data/lib/dapp/project/command/cleanup.rb +9 -11
  96. data/lib/dapp/project/command/common.rb +8 -20
  97. data/lib/dapp/project/command/list.rb +7 -1
  98. data/lib/dapp/project/command/mrproper.rb +12 -22
  99. data/lib/dapp/project/command/push.rb +3 -4
  100. data/lib/dapp/project/command/run.rb +2 -2
  101. data/lib/dapp/project/command/spush.rb +3 -4
  102. data/lib/dapp/project/command/stage_image.rb +2 -2
  103. data/lib/dapp/project/command/stages/cleanup_local.rb +20 -24
  104. data/lib/dapp/project/command/stages/cleanup_repo.rb +3 -3
  105. data/lib/dapp/project/command/stages/common.rb +2 -3
  106. data/lib/dapp/project/command/stages/flush_local.rb +5 -7
  107. data/lib/dapp/project/command/stages/flush_repo.rb +2 -2
  108. data/lib/dapp/project/command/stages/pull.rb +3 -4
  109. data/lib/dapp/project/command/stages/push.rb +3 -4
  110. data/lib/dapp/project/dappfile.rb +9 -26
  111. data/lib/dapp/project/logging/base.rb +14 -0
  112. data/lib/dapp/project/logging/process.rb +1 -1
  113. data/lib/dapp/project/shellout/system.rb +2 -4
  114. data/lib/dapp/version.rb +1 -1
  115. metadata +25 -17
  116. data/lib/dapp/cli/tag.rb +0 -24
  117. data/lib/dapp/config/application.rb +0 -288
  118. data/lib/dapp/config/artifact.rb +0 -20
  119. data/lib/dapp/config/directive/build_dir.rb +0 -9
  120. data/lib/dapp/config/directive/git_artifact.rb +0 -59
  121. data/lib/dapp/config/directive/shell/base.rb +0 -85
  122. data/lib/dapp/config/directive/tmp_dir.rb +0 -36
  123. data/lib/dapp/config/main.rb +0 -20
  124. data/lib/dapp/error/application.rb +0 -6
  125. data/lib/dapp/project/command/tag.rb +0 -18
@@ -0,0 +1,45 @@
1
+ module Dapp
2
+ module Builder
3
+ # None
4
+ class None < Base
5
+ def before_dimg_should_be_built_check
6
+ end
7
+
8
+ def before_install(_image)
9
+ end
10
+
11
+ def before_install_checksum
12
+ end
13
+
14
+ def before_setup(_image)
15
+ end
16
+
17
+ def before_setup_checksum
18
+ end
19
+
20
+ def install(_image)
21
+ end
22
+
23
+ def install_checksum
24
+ end
25
+
26
+ def setup(_image)
27
+ end
28
+
29
+ def setup_checksum
30
+ end
31
+
32
+ def build_artifact(_image)
33
+ end
34
+
35
+ def build_artifact_checksum
36
+ end
37
+
38
+ def chef_cookbooks(_image)
39
+ end
40
+
41
+ def chef_cookbooks_checksum
42
+ end
43
+ end # Base
44
+ end # Builder
45
+ end # Dapp
@@ -4,8 +4,8 @@ module Dapp
4
4
  class Shell < Base
5
5
  [:before_install, :before_setup, :install, :setup, :build_artifact].each do |stage|
6
6
  define_method("#{stage}_checksum") do
7
- [application.config._shell.public_send("_#{stage}"),
8
- application.config._shell.public_send("_#{stage}_cache_version")].flatten
7
+ [dimg.config._shell.public_send("_#{stage}_command"),
8
+ dimg.config._shell.public_send("_#{stage}_version")].flatten
9
9
  end
10
10
  define_method("#{stage}?") { !stage_empty?(stage) }
11
11
  define_method(stage.to_s) do |image|
@@ -18,7 +18,7 @@ module Dapp
18
18
  end
19
19
 
20
20
  def stage_commands(stage)
21
- application.config._shell.public_send("_#{stage}")
21
+ dimg.config._shell.public_send("_#{stage}_command")
22
22
  end
23
23
  end
24
24
  end
@@ -5,23 +5,22 @@ module Dapp
5
5
  include Mixlib::CLI
6
6
  include Helper::Trivia
7
7
 
8
- SUBCOMMANDS = ['build', 'push', 'spush', 'list', 'run', 'stages', 'cleanup', 'bp', 'mrproper', 'stage image', 'tag'].freeze
8
+ SUBCOMMANDS = ['build', 'push', 'spush', 'list', 'run', 'stages', 'cleanup', 'bp', 'mrproper', 'stage image'].freeze
9
9
 
10
10
  banner <<BANNER.freeze
11
11
  Usage: dapp [options] sub-command [sub-command options]
12
12
 
13
13
  Available subcommands: (for details, dapp SUB-COMMAND --help)
14
14
 
15
- dapp build [options] [APPS PATTERN ...]
16
- dapp bp [options] [APPS PATTERN ...] REPO
17
- dapp push [options] [APP PATTERN] REPO
18
- dapp spush [options] [APPS PATTERN ...] REPO
19
- dapp tag [options] [APP PATTERN ...] TAG
20
- dapp list [options] [APPS PATTERN ...]
21
- dapp run [options] [APP PATTERN] [DOCKER ARGS]
22
- dapp cleanup [options] [APPS PATTERN ...]
15
+ dapp build [options] [DIMGS PATTERN ...]
16
+ dapp bp [options] [DIMGS PATTERN ...] REPO
17
+ dapp push [options] [DIMGS PATTERN] REPO
18
+ dapp spush [options] [DIMG PATTERN ...] REPO
19
+ dapp list [options] [DIMGS PATTERN ...]
20
+ dapp run [options] [DIMG PATTERN] [DOCKER ARGS]
21
+ dapp cleanup [options] [DIMGS PATTERN ...]
23
22
  dapp mrproper [options]
24
- dapp stage image [options] [APP PATTERN]
23
+ dapp stage image [options] [DIMG PATTERN]
25
24
  dapp stages
26
25
 
27
26
  Options:
@@ -30,6 +30,11 @@ module Dapp
30
30
  default: false,
31
31
  boolean: true
32
32
 
33
+ option :ignore_config_warning,
34
+ long: '--ignore-config-sequential-processing-warnings',
35
+ default: false,
36
+ boolean: true
37
+
33
38
  option :log_color,
34
39
  long: '--color MODE',
35
40
  description: 'Display output in color on the terminal',
@@ -53,7 +58,7 @@ module Dapp
53
58
 
54
59
  def run(argv = ARGV)
55
60
  self.class.parse_options(self, argv)
56
- Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase)
61
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(class_to_lowercase)
57
62
  end
58
63
  end
59
64
  end
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp bp [options] [APPS PATTERNS] REPO
9
+ dapp bp [options] [DIMGS PATTERNS] REPO
10
10
 
11
- APPS PATTERN Applications to process [default: *].
11
+ DIMGS PATTERN Dapp images to process [default: *].
12
12
  REPO Pushed image name.
13
13
 
14
14
  Options:
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp build [options] [APPS PATTERN ...]
9
+ dapp build [options] [DIMGS PATTERN ...]
10
10
 
11
- APPS PATTERN Applications to process [default: *].
11
+ DIMGS PATTERN Dapp images to process [default: *].
12
12
 
13
13
  Options:
14
14
  BANNER
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp cleanup [options] [APPS PATTERN ...]
9
+ dapp cleanup [options] [DIMGS PATTERN ...]
10
10
 
11
- APPS PATTERN Applications to process [default: *].
11
+ DIMGS PATTERN Dapp images to process [default: *].
12
12
 
13
13
  Options:
14
14
  BANNER
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp list [options] [APPS PATTERN ...]
9
+ dapp list [options] [DIMGS PATTERN ...]
10
10
 
11
- APPS PATTERN Applications to process [default: *].
11
+ DIMGS PATTERN Dapp images to process [default: *].
12
12
 
13
13
  Options:
14
14
  BANNER
@@ -17,10 +17,6 @@ BANNER
17
17
  option :proper_cache_version,
18
18
  long: '--improper-cache-version-stages',
19
19
  boolean: true
20
-
21
- option :proper_dev_mode_cache,
22
- long: '--improper-dev-mode-cache',
23
- boolean: true
24
20
  end
25
21
  end
26
22
  end
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp push [options] [APP PATTERN] REPO
9
+ dapp push [options] [DIMG PATTERN] REPO
10
10
 
11
- APP PATTERN Applications to process [default: *].
11
+ DIMG PATTERN Dapp images to process [default: *].
12
12
 
13
13
  Options:
14
14
  BANNER
@@ -54,7 +54,7 @@ BANNER
54
54
  def run(argv = ARGV)
55
55
  self.class.parse_options(self, argv)
56
56
  repo = self.class.required_argument(self)
57
- Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase, repo)
57
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(class_to_lowercase, repo)
58
58
  end
59
59
  end
60
60
  end
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp run [options] [APP PATTERN] [DOCKER ARGS]
9
+ dapp run [options] [DIMG PATTERN] [DOCKER ARGS]
10
10
 
11
- APP PATTERN Application to process [default: *].
11
+ DIMG PATTERN Dapp image to process [default: *].
12
12
  DOCKER ARGS Docker run options and command separated by '--'
13
13
 
14
14
  Options:
@@ -46,7 +46,7 @@ BANNER
46
46
  index = filtered_args.index('--') || filtered_args.count
47
47
  docker_options = index.nonzero? ? filtered_args.slice(0..index - 1) : []
48
48
  command = filtered_args.slice(index + 1..-1) || []
49
- Project.new(cli_options: config, apps_patterns: pattern).run(docker_options, command)
49
+ Project.new(cli_options: config, dimgs_patterns: pattern).run(docker_options, command)
50
50
  end
51
51
  end
52
52
  end
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp spush [options] [APPS PATTERN ...] REPO
9
+ dapp spush [options] [DIMGS PATTERN ...] REPO
10
10
 
11
- APPS PATTERN Applications to process [default: *].
11
+ DIMGS PATTERN Dapp images to process [default: *].
12
12
  REPO Pushed image name.
13
13
 
14
14
  Options:
@@ -6,9 +6,9 @@ module Dapp
6
6
  Version: #{Dapp::VERSION}
7
7
 
8
8
  Usage:
9
- dapp stage image [options] [APP PATTERN ...]
9
+ dapp stage image [options] [DIMG PATTERN ...]
10
10
 
11
- APP PATTERN Application to process [default: *].
11
+ DIMG PATTERN Dapp image to process [default: *].
12
12
 
13
13
  Options:
14
14
  BANNER
@@ -7,9 +7,9 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages cleanup local [options] [APPS PATTERN ...] REPO
10
+ dapp stages cleanup local [options] [DIMGS PATTERN ...] REPO
11
11
 
12
- APPS PATTERN Applications to process [default: *].
12
+ DIMGS PATTERN Dapp images to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
@@ -20,7 +20,7 @@ BANNER
20
20
  def run(argv = ARGV)
21
21
  self.class.parse_options(self, argv)
22
22
  repo = self.class.required_argument(self)
23
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_cleanup_local(repo)
23
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_cleanup_local(repo)
24
24
  end
25
25
  end
26
26
  end
@@ -7,16 +7,16 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages cleanup repo [options] [APPS PATTERN ...] REPO
10
+ dapp stages cleanup repo [options] [DIMGS PATTERN ...] REPO
11
11
 
12
- APPS PATTERN Applications to process [default: *].
12
+ DIMGS PATTERN Dapp images to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
16
16
  def run(argv = ARGV)
17
17
  self.class.parse_options(self, argv)
18
18
  repo = self.class.required_argument(self)
19
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_cleanup_repo(repo)
19
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_cleanup_repo(repo)
20
20
  end
21
21
  end
22
22
  end
@@ -7,15 +7,15 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages flush local [options] [APPS PATTERN ...]
10
+ dapp stages flush local [options] [DIMGS PATTERN ...]
11
11
 
12
- APPS PATTERN Applications to process [default: *].
12
+ DIMGS PATTERN Dapp images to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
16
16
  def run(argv = ARGV)
17
17
  self.class.parse_options(self, argv)
18
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_flush_local
18
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_flush_local
19
19
  end
20
20
  end
21
21
  end
@@ -7,16 +7,16 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages flush repo [options] [APPS PATTERN ...] REPO
10
+ dapp stages flush repo [options] [DIMGS PATTERN ...] REPO
11
11
 
12
- APPS PATTERN Applications to process [default: *].
12
+ DIMGS PATTERN Dapp images to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
16
16
  def run(argv = ARGV)
17
17
  self.class.parse_options(self, argv)
18
18
  repo = self.class.required_argument(self)
19
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_flush_repo(repo)
19
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_flush_repo(repo)
20
20
  end
21
21
  end
22
22
  end
@@ -7,9 +7,9 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages pull [options] [APP PATTERN] REPO
10
+ dapp stages pull [options] [DIMG PATTERN] REPO
11
11
 
12
- APP PATTERN Applications to process [default: *].
12
+ DIMG PATTERN Dapp image to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
@@ -20,7 +20,7 @@ BANNER
20
20
  def run(argv = ARGV)
21
21
  self.class.parse_options(self, argv)
22
22
  repo = self.class.required_argument(self)
23
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_pull(repo)
23
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_pull(repo)
24
24
  end
25
25
  end
26
26
  end
@@ -7,16 +7,16 @@ module Dapp
7
7
  Version: #{Dapp::VERSION}
8
8
 
9
9
  Usage:
10
- dapp stages push [options] [APP PATTERN] REPO
10
+ dapp stages push [options] [DIMG PATTERN] REPO
11
11
 
12
- APP PATTERN Applications to process [default: *].
12
+ DIMG PATTERN Dapp image to process [default: *].
13
13
 
14
14
  Options:
15
15
  BANNER
16
16
  def run(argv = ARGV)
17
17
  self.class.parse_options(self, argv)
18
18
  repo = self.class.required_argument(self)
19
- Project.new(cli_options: config, apps_patterns: cli_arguments).stages_push(repo)
19
+ Project.new(cli_options: config, dimgs_patterns: cli_arguments).stages_push(repo)
20
20
  end
21
21
  end
22
22
  end
@@ -0,0 +1,18 @@
1
+ module Dapp
2
+ module Config
3
+ # ArtifactDimg
4
+ class ArtifactDimg < Dimg
5
+ attr_reader :_artifact_dependencies
6
+
7
+ def validate_scratch!
8
+ end
9
+
10
+ def validate_artifacts_artifacts!
11
+ end
12
+
13
+ def validated_artifacts
14
+ _git_artifact._local + _git_artifact._remote
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,54 @@
1
+ module Dapp
2
+ module Config
3
+ # ArtifactGroup
4
+ class ArtifactGroup < DimgGroup
5
+ attr_reader :_artifact_dependencies, :_export
6
+
7
+ def initialize(project:)
8
+ @_artifact_dependencies = []
9
+ @_export = []
10
+
11
+ super(project: project)
12
+ end
13
+
14
+ def _shell(&blk)
15
+ @_shell ||= Directive::Shell::Artifact.new(&blk)
16
+ end
17
+
18
+ def _docker(&blk)
19
+ @_docker ||= Directive::Docker::Artifact.new(&blk)
20
+ end
21
+
22
+ undef :artifact
23
+ undef :dimg
24
+ undef :dimg_group
25
+
26
+ protected
27
+
28
+ def artifact_depends_on(*args)
29
+ @_artifact_dependencies.concat(args)
30
+ end
31
+
32
+ def export(*args, &blk)
33
+ @_export.concat begin
34
+ artifact_config = pass_to_default(ArtifactDimg.new("artifact-#{SecureRandom.hex(2)}", project: project))
35
+ artifact = Directive::Artifact.new(config: artifact_config)
36
+ artifact.send(:export, *args, &blk)
37
+ artifact._export
38
+ end
39
+ end
40
+
41
+ def check_dimg_directive_order(_directive)
42
+ end
43
+
44
+ def check_dimg_group_directive_order(_directive)
45
+ end
46
+
47
+ def pass_to_default(obj)
48
+ super(obj).tap do |artifact_dimg|
49
+ artifact_dimg.instance_variable_set(:@_artifact_dependencies, marshal_dup(_artifact_dependencies))
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end