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.
Files changed (299) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dapp +5 -5
  3. data/config/en/common.yml +6 -4
  4. data/config/en/net_status.yml +8 -7
  5. data/lib/dapp.rb +157 -139
  6. data/lib/dapp/cli.rb +6 -16
  7. data/lib/dapp/cli/base.rb +3 -5
  8. data/lib/dapp/config/base.rb +19 -7
  9. data/lib/dapp/config/directive/base.rb +0 -1
  10. data/lib/dapp/config/error/config.rb +7 -0
  11. data/lib/dapp/core_ext/hash.rb +0 -2
  12. data/lib/dapp/core_ext/pathname.rb +1 -3
  13. data/lib/dapp/{project.rb → dapp.rb} +2 -21
  14. data/lib/dapp/{project → dapp}/chef.rb +2 -4
  15. data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
  16. data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
  17. data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
  18. data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
  19. data/lib/dapp/{project → dapp}/lock.rb +3 -5
  20. data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
  21. data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
  22. data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
  23. data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
  24. data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
  25. data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
  26. data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
  27. data/lib/dapp/dimg.rb +1 -192
  28. data/lib/dapp/dimg/artifact.rb +24 -0
  29. data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
  30. data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
  31. data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
  32. data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
  33. data/lib/dapp/dimg/build/stage/base.rb +210 -0
  34. data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
  35. data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
  36. data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
  37. data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
  38. data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
  39. data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
  40. data/lib/dapp/dimg/build/stage/from.rb +50 -0
  41. data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
  42. data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
  43. data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
  44. data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
  45. data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
  46. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
  47. data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
  48. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
  49. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
  50. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
  51. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
  52. data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
  53. data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
  54. data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
  55. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
  56. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
  57. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
  58. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
  59. data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
  60. data/lib/dapp/dimg/builder.rb +6 -0
  61. data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
  62. data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
  63. data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
  64. data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
  65. data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
  66. data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
  67. data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
  68. data/lib/dapp/dimg/cli/base.rb +16 -0
  69. data/lib/dapp/dimg/cli/bp.rb +37 -0
  70. data/lib/dapp/dimg/cli/build.rb +64 -0
  71. data/lib/dapp/dimg/cli/build_context.rb +18 -0
  72. data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
  73. data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
  74. data/lib/dapp/dimg/cli/cleanup.rb +22 -0
  75. data/lib/dapp/dimg/cli/cli.rb +1 -0
  76. data/lib/dapp/dimg/cli/dimg.rb +30 -0
  77. data/lib/dapp/dimg/cli/list.rb +17 -0
  78. data/lib/dapp/dimg/cli/mrproper.rb +26 -0
  79. data/lib/dapp/dimg/cli/push.rb +61 -0
  80. data/lib/dapp/dimg/cli/run.rb +59 -0
  81. data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
  82. data/lib/dapp/dimg/cli/stage_image.rb +24 -0
  83. data/lib/dapp/dimg/cli/stages.rb +22 -0
  84. data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
  85. data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
  86. data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
  87. data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
  88. data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
  89. data/lib/dapp/dimg/cli/stages/push.rb +24 -0
  90. data/lib/dapp/dimg/cli/tag.rb +24 -0
  91. data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
  92. data/lib/dapp/dimg/config/artifact_group.rb +47 -0
  93. data/lib/dapp/dimg/config/base.rb +7 -0
  94. data/lib/dapp/dimg/config/dimg.rb +24 -0
  95. data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
  96. data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
  97. data/lib/dapp/dimg/config/dimg_group.rb +61 -0
  98. data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
  99. data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
  100. data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
  101. data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
  102. data/lib/dapp/dimg/config/directive/base.rb +9 -0
  103. data/lib/dapp/dimg/config/directive/chef.rb +68 -0
  104. data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
  105. data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
  106. data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
  107. data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
  108. data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
  109. data/lib/dapp/dimg/config/directive/mount.rb +27 -0
  110. data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
  111. data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
  112. data/lib/dapp/dimg/dapp/command.rb +21 -0
  113. data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
  114. data/lib/dapp/dimg/dapp/command/build.rb +22 -0
  115. data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
  116. data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
  117. data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
  118. data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
  119. data/lib/dapp/dimg/dapp/command/common.rb +96 -0
  120. data/lib/dapp/dimg/dapp/command/list.rb +19 -0
  121. data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
  122. data/lib/dapp/dimg/dapp/command/push.rb +27 -0
  123. data/lib/dapp/dimg/dapp/command/run.rb +15 -0
  124. data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
  125. data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
  126. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
  127. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
  128. data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
  129. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
  130. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
  131. data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
  132. data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
  133. data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
  134. data/lib/dapp/dimg/dimg.rb +192 -0
  135. data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
  136. data/lib/dapp/dimg/dimg/path.rb +37 -0
  137. data/lib/dapp/dimg/dimg/stages.rb +60 -0
  138. data/lib/dapp/dimg/dimg/tags.rb +65 -0
  139. data/lib/dapp/dimg/docker_registry.rb +37 -0
  140. data/lib/dapp/dimg/docker_registry/base.rb +109 -0
  141. data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
  142. data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
  143. data/lib/dapp/dimg/docker_registry/default.rb +18 -0
  144. data/lib/dapp/dimg/error/base.rb +7 -0
  145. data/lib/dapp/dimg/error/build.rb +7 -0
  146. data/lib/dapp/dimg/error/chef.rb +11 -0
  147. data/lib/dapp/dimg/error/command.rb +7 -0
  148. data/lib/dapp/dimg/error/config.rb +7 -0
  149. data/lib/dapp/dimg/error/dimg.rb +7 -0
  150. data/lib/dapp/dimg/error/lock.rb +7 -0
  151. data/lib/dapp/dimg/error/registry.rb +7 -0
  152. data/lib/dapp/dimg/error/rugged.rb +7 -0
  153. data/lib/dapp/dimg/error/shellout.rb +7 -0
  154. data/lib/dapp/dimg/error/tar_writer.rb +7 -0
  155. data/lib/dapp/dimg/exception/base.rb +7 -0
  156. data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
  157. data/lib/dapp/dimg/exception/registry.rb +7 -0
  158. data/lib/dapp/dimg/filelock.rb +43 -0
  159. data/lib/dapp/dimg/git_artifact.rb +241 -18
  160. data/lib/dapp/dimg/git_repo/base.rb +90 -0
  161. data/lib/dapp/dimg/git_repo/own.rb +39 -0
  162. data/lib/dapp/dimg/git_repo/remote.rb +50 -0
  163. data/lib/dapp/dimg/image/argument.rb +143 -0
  164. data/lib/dapp/dimg/image/docker.rb +127 -0
  165. data/lib/dapp/dimg/image/scratch.rb +32 -0
  166. data/lib/dapp/dimg/image/stage.rb +95 -0
  167. data/lib/dapp/dimg/lock/base.rb +51 -0
  168. data/lib/dapp/dimg/lock/file.rb +48 -0
  169. data/lib/dapp/error/base.rb +0 -1
  170. data/lib/dapp/error/dapp.rb +5 -0
  171. data/lib/dapp/error/dappfile.rb +0 -1
  172. data/lib/dapp/error/shellout.rb +0 -1
  173. data/lib/dapp/exception/base.rb +0 -1
  174. data/lib/dapp/helper/cli.rb +5 -6
  175. data/lib/dapp/helper/net_status.rb +0 -1
  176. data/lib/dapp/helper/sha256.rb +0 -1
  177. data/lib/dapp/helper/trivia.rb +0 -1
  178. data/lib/dapp/prctl.rb +0 -1
  179. data/lib/dapp/version.rb +1 -2
  180. metadata +172 -140
  181. data/lib/dapp/artifact.rb +0 -23
  182. data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
  183. data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
  184. data/lib/dapp/build/stage/artifact_base.rb +0 -80
  185. data/lib/dapp/build/stage/artifact_default.rb +0 -63
  186. data/lib/dapp/build/stage/base.rb +0 -203
  187. data/lib/dapp/build/stage/before_install.rb +0 -32
  188. data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
  189. data/lib/dapp/build/stage/before_setup.rb +0 -30
  190. data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
  191. data/lib/dapp/build/stage/build_artifact.rb +0 -36
  192. data/lib/dapp/build/stage/docker_instructions.rb +0 -24
  193. data/lib/dapp/build/stage/from.rb +0 -34
  194. data/lib/dapp/build/stage/ga_archive.rb +0 -27
  195. data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
  196. data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
  197. data/lib/dapp/build/stage/ga_base.rb +0 -79
  198. data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
  199. data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
  200. data/lib/dapp/build/stage/import_artifact.rb +0 -65
  201. data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
  202. data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
  203. data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
  204. data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
  205. data/lib/dapp/build/stage/install/install.rb +0 -40
  206. data/lib/dapp/build/stage/mod/group.rb +0 -42
  207. data/lib/dapp/build/stage/mod/logging.rb +0 -104
  208. data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
  209. data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
  210. data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
  211. data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
  212. data/lib/dapp/build/stage/setup/setup.rb +0 -40
  213. data/lib/dapp/builder/chef/berksfile.rb +0 -78
  214. data/lib/dapp/builder/chef/cookbook.rb +0 -257
  215. data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
  216. data/lib/dapp/builder/chef/error.rb +0 -12
  217. data/lib/dapp/cli/bp.rb +0 -37
  218. data/lib/dapp/cli/build.rb +0 -60
  219. data/lib/dapp/cli/cleanup.rb +0 -22
  220. data/lib/dapp/cli/list.rb +0 -17
  221. data/lib/dapp/cli/mrproper.rb +0 -26
  222. data/lib/dapp/cli/push.rb +0 -61
  223. data/lib/dapp/cli/run.rb +0 -53
  224. data/lib/dapp/cli/stage_image.rb +0 -24
  225. data/lib/dapp/cli/stages.rb +0 -23
  226. data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
  227. data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
  228. data/lib/dapp/cli/stages/flush_local.rb +0 -23
  229. data/lib/dapp/cli/stages/flush_repo.rb +0 -24
  230. data/lib/dapp/cli/stages/pull.rb +0 -28
  231. data/lib/dapp/cli/stages/push.rb +0 -24
  232. data/lib/dapp/cli/tag.rb +0 -24
  233. data/lib/dapp/config/artifact_dimg.rb +0 -20
  234. data/lib/dapp/config/artifact_group.rb +0 -56
  235. data/lib/dapp/config/dimg.rb +0 -23
  236. data/lib/dapp/config/dimg/instance_methods.rb +0 -194
  237. data/lib/dapp/config/dimg/validation.rb +0 -125
  238. data/lib/dapp/config/dimg_group.rb +0 -60
  239. data/lib/dapp/config/dimg_group_base.rb +0 -53
  240. data/lib/dapp/config/dimg_group_main.rb +0 -21
  241. data/lib/dapp/config/directive/artifact.rb +0 -69
  242. data/lib/dapp/config/directive/artifact_base.rb +0 -93
  243. data/lib/dapp/config/directive/chef.rb +0 -57
  244. data/lib/dapp/config/directive/docker/artifact.rb +0 -15
  245. data/lib/dapp/config/directive/docker/base.rb +0 -20
  246. data/lib/dapp/config/directive/docker/dimg.rb +0 -81
  247. data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
  248. data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
  249. data/lib/dapp/config/directive/mount.rb +0 -26
  250. data/lib/dapp/config/directive/shell/artifact.rb +0 -17
  251. data/lib/dapp/config/directive/shell/dimg.rb +0 -65
  252. data/lib/dapp/dimg/path.rb +0 -37
  253. data/lib/dapp/dimg/stages.rb +0 -59
  254. data/lib/dapp/dimg/tags.rb +0 -65
  255. data/lib/dapp/docker_registry.rb +0 -36
  256. data/lib/dapp/docker_registry/base.rb +0 -109
  257. data/lib/dapp/docker_registry/default.rb +0 -18
  258. data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
  259. data/lib/dapp/docker_registry/mod/request.rb +0 -32
  260. data/lib/dapp/error/build.rb +0 -6
  261. data/lib/dapp/error/config.rb +0 -6
  262. data/lib/dapp/error/dimg.rb +0 -6
  263. data/lib/dapp/error/image.rb +0 -6
  264. data/lib/dapp/error/project.rb +0 -6
  265. data/lib/dapp/error/registry.rb +0 -6
  266. data/lib/dapp/error/rugged.rb +0 -6
  267. data/lib/dapp/error/tar_writer.rb +0 -6
  268. data/lib/dapp/exception/introspect_image.rb +0 -6
  269. data/lib/dapp/exception/registry.rb +0 -6
  270. data/lib/dapp/filelock.rb +0 -43
  271. data/lib/dapp/git_artifact.rb +0 -241
  272. data/lib/dapp/git_repo/base.rb +0 -88
  273. data/lib/dapp/git_repo/own.rb +0 -38
  274. data/lib/dapp/git_repo/remote.rb +0 -49
  275. data/lib/dapp/image/argument.rb +0 -134
  276. data/lib/dapp/image/docker.rb +0 -115
  277. data/lib/dapp/image/scratch.rb +0 -32
  278. data/lib/dapp/image/stage.rb +0 -94
  279. data/lib/dapp/lock/base.rb +0 -51
  280. data/lib/dapp/lock/error.rb +0 -14
  281. data/lib/dapp/lock/file.rb +0 -45
  282. data/lib/dapp/project/command/bp.rb +0 -21
  283. data/lib/dapp/project/command/build.rb +0 -20
  284. data/lib/dapp/project/command/cleanup.rb +0 -24
  285. data/lib/dapp/project/command/common.rb +0 -96
  286. data/lib/dapp/project/command/list.rb +0 -20
  287. data/lib/dapp/project/command/mrproper.rb +0 -69
  288. data/lib/dapp/project/command/push.rb +0 -28
  289. data/lib/dapp/project/command/run.rb +0 -15
  290. data/lib/dapp/project/command/spush.rb +0 -18
  291. data/lib/dapp/project/command/stage_image.rb +0 -15
  292. data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
  293. data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
  294. data/lib/dapp/project/command/stages/common.rb +0 -86
  295. data/lib/dapp/project/command/stages/flush_local.rb +0 -22
  296. data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
  297. data/lib/dapp/project/command/stages/pull.rb +0 -27
  298. data/lib/dapp/project/command/stages/push.rb +0 -23
  299. data/lib/dapp/project/command/tag.rb +0 -18
@@ -1,21 +0,0 @@
1
- module Dapp
2
- module Config
3
- # DimgGroupMain
4
- class DimgGroupMain < DimgGroupBase
5
- def dimg(name = nil, &blk)
6
- with_dimg_validation { super(name, &blk) }
7
- end
8
-
9
- def dimg_group(&blk)
10
- with_dimg_validation { super(&blk) }
11
- end
12
-
13
- protected
14
-
15
- def with_dimg_validation
16
- yield
17
- raise Error::Config, code: :dimg_name_required if _dimg.any? { |dimg| dimg._name.nil? } && _dimg.size > 1
18
- end
19
- end
20
- end
21
- end
@@ -1,69 +0,0 @@
1
- module Dapp
2
- module Config
3
- # Directive
4
- module Directive
5
- # Artifact
6
- class Artifact < ArtifactBase
7
- attr_reader :_config
8
-
9
- def initialize(config:, **kwargs, &blk)
10
- @_config = config
11
-
12
- super(**kwargs, &blk)
13
- end
14
-
15
- def _export
16
- super do |export|
17
- export._before ||= @_before
18
- export._after ||= @_after
19
- export._config = _config
20
- end
21
- end
22
-
23
- # Export
24
- class Export < ArtifactBase::Export
25
- attr_accessor :_config
26
- attr_accessor :_before, :_after
27
-
28
- def not_associated?
29
- (_before || _after).nil?
30
- end
31
-
32
- protected
33
-
34
- def before(stage)
35
- stage = stage.to_sym
36
- associate_validation!(:before, stage, @_before)
37
- @_before = stage
38
- end
39
-
40
- def after(stage)
41
- stage = stage.to_sym
42
- associate_validation!(:after, stage, @_after)
43
- @_after = stage
44
- end
45
-
46
- def associate_validation!(type, stage, old_stage)
47
- conflict_type = [:before, :after].find { |t| t != type }
48
- conflict_stage = send("_#{conflict_type}")
49
-
50
- raise Error::Config, code: :stage_artifact_not_supported_associated_stage,
51
- data: { stage: "#{type} #{stage.inspect}" } unless [:install, :setup].include? stage
52
-
53
- raise Error::Config, code: :stage_artifact_double_associate,
54
- data: { stage: "#{type} #{stage.inspect}",
55
- conflict_stage: "#{conflict_type} #{conflict_stage.inspect}" } if conflict_stage
56
-
57
- defined_stage = send("_#{type}")
58
- project.log_config_warning(desc: {
59
- code: :stage_artifact_rewritten,
60
- context: :warning,
61
- data: { stage: "#{type} #{stage.inspect}",
62
- conflict_stage: "#{type} #{defined_stage.inspect}" }
63
- }) if defined_stage
64
- end
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,93 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # ArtifactBase
5
- class ArtifactBase < Base
6
- attr_reader :_owner, :_group
7
-
8
- def initialize(**kwargs, &blk)
9
- @_export = []
10
-
11
- super(**kwargs, &blk)
12
- end
13
-
14
- def _export
15
- @_export.each do |export|
16
- export._owner ||= @_owner
17
- export._group ||= @_group
18
-
19
- yield(export) if block_given?
20
- end
21
- end
22
-
23
- # Export
24
- class Export < Directive::Base
25
- attr_accessor :_cwd, :_to, :_include_paths, :_exclude_paths, :_owner, :_group
26
-
27
- def initialize(cwd = '/', **kwargs, &blk)
28
- raise Error::Config, code: :export_cwd_absolute_path_required unless Pathname(cwd).absolute?
29
- @_cwd = path_format(cwd)
30
- @_include_paths ||= []
31
- @_exclude_paths ||= []
32
-
33
- super(**kwargs, &blk)
34
- end
35
-
36
- def _artifact_options
37
- {
38
- to: _to,
39
- cwd: _cwd,
40
- include_paths: _include_paths,
41
- exclude_paths: _exclude_paths,
42
- owner: _owner,
43
- group: _group
44
- }
45
- end
46
-
47
- protected
48
-
49
- def to(absolute_path)
50
- raise Error::Config, code: :export_to_absolute_path_required unless Pathname(absolute_path).absolute?
51
- @_to = path_format(absolute_path)
52
- end
53
-
54
- def include_paths(*relative_paths)
55
- raise Error::Config, code: :export_include_paths_relative_path_required unless relative_paths.all? { |path| Pathname(path).relative? }
56
- _include_paths.concat(relative_paths.map(&method(:path_format)))
57
- end
58
-
59
- def exclude_paths(*relative_paths)
60
- raise Error::Config, code: :export_exclude_paths_relative_path_required unless relative_paths.all? { |path| Pathname(path).relative? }
61
- _exclude_paths.concat(relative_paths.map(&method(:path_format)))
62
- end
63
-
64
- def owner(owner)
65
- @_owner = owner
66
- end
67
-
68
- def group(group)
69
- @_group = group
70
- end
71
-
72
- def validate!
73
- raise Error::Config, code: :export_to_required if _to.nil?
74
- end
75
- end
76
-
77
- protected
78
-
79
- def owner(owner)
80
- @_owner = owner
81
- end
82
-
83
- def group(group)
84
- @_group = group
85
- end
86
-
87
- def export(absolute_dir_path = '/', &blk)
88
- @_export << self.class.const_get('Export').new(absolute_dir_path, project: project, &blk)
89
- end
90
- end
91
- end
92
- end
93
- end
@@ -1,57 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # Chef
5
- class Chef < Base
6
- attr_accessor :_dimod, :_recipe, :_attributes
7
-
8
- def initialize(**kwargs, &blk)
9
- @_dimod = []
10
- @_recipe = []
11
-
12
- super(**kwargs, &blk)
13
- end
14
-
15
- def dimod(*args)
16
- @_dimod.concat(args)
17
- end
18
-
19
- def recipe(*args)
20
- @_recipe.concat(args)
21
- end
22
-
23
- def attributes
24
- @_attributes ||= Attributes.new
25
- end
26
-
27
- %i(before_install install before_setup setup build_artifact).each do |stage|
28
- define_method("_#{stage}_attributes") do
29
- var = "@__#{stage}_attributes"
30
- instance_variable_get(var) || instance_variable_set(var, Attributes.new)
31
- end
32
- end
33
-
34
- # Attributes
35
- class Attributes < Hash
36
- def [](key)
37
- super || begin
38
- self[key] = self.class.new
39
- end
40
- end
41
- end # Attributes
42
-
43
- %i(before_install install before_setup setup build_artifact).each do |stage|
44
- define_method("__#{stage}_attributes") do
45
- attributes.in_depth_merge send("_#{stage}_attributes")
46
- end
47
- end
48
-
49
- protected
50
-
51
- def empty?
52
- (@_dimod + @_recipe).empty? && attributes.empty?
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,15 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # Docker
5
- module Docker
6
- # Artifact
7
- class Artifact < Base
8
- def _change_options
9
- {}
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- module Docker
5
- # Base
6
- class Base < Directive::Base
7
- attr_reader :_from, :_from_cache_version
8
-
9
- def from(image, cache_version: nil)
10
- image = image.to_s
11
- raise(Error::Config, code: :docker_from_incorrect, data: { name: image }) unless Image::Docker.image_name?(image)
12
- raise(Error::Config, code: :docker_from_without_tag, data: { name: image }) unless image.include?(':')
13
- @_from = image
14
- @_from_cache_version = cache_version
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,81 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- module Docker
5
- # Dimg
6
- class Dimg < Base
7
- attr_reader :_volume, :_expose, :_env, :_label, :_cmd, :_onbuild, :_workdir, :_user, :_entrypoint
8
-
9
- def initialize(**kwargs, &blk)
10
- @_volume = []
11
- @_expose = []
12
- @_env = {}
13
- @_label = {}
14
- @_cmd = []
15
- @_onbuild = []
16
-
17
- super(**kwargs, &blk)
18
- end
19
-
20
- def volume(*args)
21
- @_volume.concat(args)
22
- end
23
-
24
- def expose(*args)
25
- @_expose.concat(args)
26
- end
27
-
28
- def env(**options)
29
- @_env.merge!(options)
30
- end
31
-
32
- def label(**options)
33
- @_label.merge!(options)
34
- end
35
-
36
- def cmd(*args)
37
- @_cmd.concat(args)
38
- end
39
-
40
- def onbuild(*args)
41
- @_onbuild.concat(args)
42
- end
43
-
44
- def workdir(path)
45
- @_workdir = path_format(path)
46
- end
47
-
48
- def user(val)
49
- @_user = val
50
- end
51
-
52
- def entrypoint(*cmd_with_args)
53
- @_entrypoint = cmd_with_args.flatten
54
- end
55
-
56
- def _change_options
57
- {
58
- volume: _volume,
59
- expose: _expose,
60
- env: _env,
61
- label: _label,
62
- cmd: _cmd,
63
- onbuild: _onbuild,
64
- workdir: _workdir,
65
- user: _user,
66
- entrypoint: _entrypoint
67
- }
68
- end
69
-
70
- protected
71
-
72
- def clone_to_artifact
73
- Artifact.new(project: project).tap do |docker|
74
- docker.instance_variable_set('@_from', @_from)
75
- end
76
- end
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,13 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # GitArtifactLocal
5
- class GitArtifactLocal < ArtifactBase
6
- protected
7
-
8
- alias add export
9
- undef_method :export
10
- end
11
- end
12
- end
13
- end
@@ -1,57 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # GitArtifactRemote
5
- class GitArtifactRemote < GitArtifactLocal
6
- attr_reader :_url, :_name, :_branch, :_commit
7
-
8
- def initialize(url, **kwargs, &blk)
9
- raise Error::Config, code: :git_artifact_remote_unsupported_protocol, data: { url: url } unless %w(http https).include? URI(url.to_s).scheme
10
-
11
- @_url = url
12
- @_name = url.gsub(%r{.*?([^\/ ]+)\.git}, '\\1')
13
-
14
- super(**kwargs, &blk)
15
- end
16
-
17
- def _export
18
- super do |export|
19
- export._url = @_url
20
- export._name = @_name
21
- export._branch ||= @_branch
22
- export._commit ||= @_commit
23
- end
24
- end
25
-
26
- # Export
27
- class Export < GitArtifactLocal::Export
28
- attr_accessor :_url, :_name, :_branch, :_commit
29
-
30
- def _artifact_options
31
- super.merge(name: _name, branch: _branch)
32
- end
33
-
34
- protected
35
-
36
- def branch(value)
37
- @_branch = value
38
- end
39
-
40
- def commit(value)
41
- @_commit = value
42
- end
43
- end
44
-
45
- protected
46
-
47
- def branch(value)
48
- @_branch = value
49
- end
50
-
51
- def commit(value)
52
- @_commit = value
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,26 +0,0 @@
1
- module Dapp
2
- module Config
3
- module Directive
4
- # Mount
5
- class Mount < Base
6
- attr_reader :_from, :_to
7
- attr_reader :_type
8
-
9
- def initialize(to, **kwargs, &blk)
10
- raise Error::Config, code: :mount_to_absolute_path_required unless Pathname((to = to.to_s)).absolute?
11
- @_to = path_format(to)
12
-
13
- super(**kwargs, &blk)
14
- end
15
-
16
- protected
17
-
18
- def from(type)
19
- type = type.to_sym
20
- raise Error::Config, code: :mount_from_type_required unless [:tmp_dir, :build_dir].include? type
21
- @_type = type
22
- end
23
- end
24
- end
25
- end
26
- end