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
@@ -0,0 +1,106 @@
1
+ module Dapp
2
+ module Dimg
3
+ class Builder::Chef::CookbookMetadata
4
+ attr_accessor :builder
5
+ attr_accessor :name
6
+ attr_accessor :version
7
+
8
+ def depends
9
+ @depends ||= {}
10
+ end
11
+
12
+ def dump
13
+ builder.send(:dump) # "friend class"
14
+ end
15
+
16
+ class << self
17
+ def from_file(metadata_file_path:)
18
+ new.tap do |metadata|
19
+ metadata.builder = FromFileBuilder.new(metadata, metadata_file_path)
20
+ end
21
+ end
22
+
23
+ def from_conf(name:, version:, cookbooks:)
24
+ new.tap do |metadata|
25
+ metadata.builder = FromConfBuilder.new(metadata, name, version, cookbooks)
26
+ end
27
+ end
28
+
29
+ protected
30
+
31
+ def new(*args, &blk)
32
+ super(*args, &blk)
33
+ end
34
+ end # << self
35
+
36
+ class Builder
37
+ def initialize(metadata)
38
+ @metadata = metadata
39
+ end
40
+
41
+ def name(name)
42
+ @metadata.name = name
43
+ end
44
+
45
+ def version(version)
46
+ @metadata.version = version
47
+ end
48
+
49
+ def depends(dependency, version_constraint = nil, **kwargs, &_blk)
50
+ @metadata.depends[dependency] = {}.tap do |desc|
51
+ desc.update(kwargs)
52
+ desc[:dependency] = dependency
53
+ desc[:version_constraint] = version_constraint if version_constraint
54
+ end
55
+ end
56
+
57
+ # rubocop:disable Style/MethodMissing
58
+ def method_missing(*_a, &_blk)
59
+ end
60
+ # rubocop:enable Style/MethodMissing
61
+
62
+ protected
63
+
64
+ def dump
65
+ raise
66
+ end
67
+ end # Builder
68
+
69
+ class FromFileBuilder < Builder
70
+ def initialize(metadata, metadata_file_path)
71
+ super(metadata)
72
+
73
+ @metadata_file_path = metadata_file_path
74
+
75
+ instance_eval(@metadata_file_path.read, @metadata_file_path.to_s)
76
+ end
77
+
78
+ def dump
79
+ @metadata_file_path.read
80
+ end
81
+ end # FromFileBuilder
82
+
83
+ class FromConfBuilder < Builder
84
+ def initialize(metadata, name, version, cookbooks)
85
+ super(metadata)
86
+
87
+ @cookbooks = cookbooks
88
+
89
+ @cookbooks.each do |cname, desc|
90
+ depends(cname, desc[:version_constraint], **desc)
91
+ end
92
+
93
+ self.name name
94
+ self.version version
95
+ end
96
+
97
+ def dump
98
+ [].tap do |lines|
99
+ lines << "name #{@metadata.name.inspect}\n"
100
+ lines << "version #{@metadata.version.inspect}\n"
101
+ end.join
102
+ end
103
+ end # FromConfBuilder
104
+ end # Builder::Chef::CookbookMetadata
105
+ end # Dimg
106
+ end # Dapp
@@ -1,7 +1,6 @@
1
1
  module Dapp
2
- module Builder
3
- # None
4
- class None < Base
2
+ module Dimg
3
+ class Builder::None < Builder::Base
5
4
  def before_dimg_should_be_built_check
6
5
  end
7
6
 
@@ -34,6 +33,6 @@ module Dapp
34
33
 
35
34
  def build_artifact_checksum
36
35
  end
37
- end # Base
38
- end # Builder
36
+ end # Builder::None
37
+ end # Dimg
39
38
  end # Dapp
@@ -1,7 +1,6 @@
1
1
  module Dapp
2
- module Builder
3
- # Shell
4
- class Shell < Base
2
+ module Dimg
3
+ class Builder::Shell < Builder::Base
5
4
  [:before_install, :before_setup, :install, :setup, :build_artifact].each do |stage|
6
5
  define_method("#{stage}_checksum") do
7
6
  [dimg.config._shell.public_send("_#{stage}_command"),
@@ -20,6 +19,6 @@ module Dapp
20
19
  def stage_commands(stage)
21
20
  dimg.config._shell.public_send("_#{stage}_command")
22
21
  end
23
- end
24
- end
25
- end
22
+ end # Builder::Shell
23
+ end # Dimg
24
+ end # Dapp
@@ -0,0 +1,16 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Base < ::Dapp::CLI::Base
5
+ def run(argv = ARGV)
6
+ self.class.parse_options(self, argv)
7
+ ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(run_method)
8
+ end
9
+
10
+ def run_method
11
+ class_to_lowercase
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,37 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Bp < Push
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg bp [options] [DIMG ...] REPO
9
+
10
+ DIMG Dapp image to process [default: *].
11
+ REPO Pushed image name.
12
+
13
+ Options:
14
+ BANNER
15
+ option :tmp_dir_prefix,
16
+ long: '--tmp-dir-prefix PREFIX',
17
+ description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
18
+
19
+ option :lock_timeout,
20
+ long: '--lock-timeout TIMEOUT',
21
+ description: 'Redefine resource locking timeout (in seconds)',
22
+ proc: ->(v) { v.to_i }
23
+
24
+ option :git_artifact_branch,
25
+ long: '--git-artifact-branch BRANCH',
26
+ description: 'Default branch to archive artifacts from'
27
+
28
+ option :ssh_key,
29
+ long: '--ssh-key SSH_KEY',
30
+ description: ['Enable only specified ssh keys ',
31
+ '(use system ssh-agent by default)'].join,
32
+ default: nil,
33
+ proc: ->(v) { composite_options(:ssh_key) << v }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,64 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Build < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg build [options] [DIMG ...]
9
+
10
+ DIMG Dapp image to process [default: *].
11
+
12
+ Options:
13
+ BANNER
14
+ option :tmp_dir_prefix,
15
+ long: '--tmp-dir-prefix PREFIX',
16
+ description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
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
+
23
+ option :git_artifact_branch,
24
+ long: '--git-artifact-branch BRANCH',
25
+ description: 'Default branch to archive artifacts from'
26
+
27
+ option :introspect_error,
28
+ long: '--introspect-error',
29
+ boolean: true,
30
+ default: false
31
+
32
+ option :introspect_before_error,
33
+ long: '--introspect-before-error',
34
+ boolean: true,
35
+ default: false
36
+
37
+ option :introspect_stage,
38
+ long: '--introspect-stage STAGE',
39
+ proc: proc { |v| v.to_sym },
40
+ in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
41
+ :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
42
+ :setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions]
43
+
44
+ option :introspect_artifact_stage,
45
+ long: '--introspect-artifact-stage STAGE',
46
+ proc: proc { |v| v.to_sym },
47
+ in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
48
+ :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
49
+ :setup, :after_setup_artifact, :g_a_artifact_patch, :build_artifact]
50
+
51
+ option :ssh_key,
52
+ long: '--ssh-key SSH_KEY',
53
+ description: ['Enable only specified ssh keys ',
54
+ '(use system ssh-agent by default)'].join,
55
+ default: nil,
56
+ proc: ->(v) { composite_options(:ssh_key) << v }
57
+
58
+ option :build_context_directory,
59
+ long: '--build-context-directory DIR_PATH',
60
+ default: nil
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,18 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class BuildContext < ::Dapp::CLI
5
+ SUBCOMMANDS = %w(import export).freeze
6
+
7
+ banner <<BANNER.freeze
8
+ Available subcommands: (for details, dapp dimg build-context SUB-COMMAND --help)
9
+
10
+ dapp dimg build-context export [options] [DIMG ...]
11
+ dapp dimg build-context import [options]
12
+
13
+ Options:
14
+ BANNER
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class BuildContext
5
+ class Export < Base
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg build-context export [options] [DIMG ...]
10
+
11
+ DIMG Dapp image to process [default: *].
12
+
13
+ Options:
14
+ BANNER
15
+ option :build_context_directory,
16
+ long: '--build-context-directory DIR_PATH',
17
+ description: 'Path to the directory with context'
18
+
19
+ def run_method
20
+ :"build_context_#{class_to_lowercase}"
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class BuildContext
5
+ class Import < Export
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg build-context import [options]
10
+
11
+ Options:
12
+ BANNER
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Cleanup < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg cleanup [options] [DIMG ...]
9
+
10
+ DIMG Dapp image to process [default: *].
11
+
12
+ Options:
13
+ BANNER
14
+
15
+ option :lock_timeout,
16
+ long: '--lock-timeout TIMEOUT',
17
+ description: 'Redefine resource locking timeout (in seconds)',
18
+ proc: ->(v) { v.to_i }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1 @@
1
+ ::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI)
@@ -0,0 +1,30 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Dimg < ::Dapp::CLI
5
+ SUBCOMMANDS = ['build', 'push', 'spush', 'list', 'run', 'stages', 'cleanup', 'bp', 'mrproper', 'stage image', 'tag', 'build-context'].freeze
6
+
7
+ banner <<BANNER.freeze
8
+ Usage: dapp dimg [options] sub-command [sub-command options]
9
+
10
+ Available subcommands: (for details, dapp dimg SUB-COMMAND --help)
11
+
12
+ dapp dimg build [options] [DIMG ...]
13
+ dapp dimg bp [options] [DIMG ...] REPO
14
+ dapp dimg push [options] [DIMG ...] REPO
15
+ dapp dimg spush [options] [DIMG] REPO
16
+ dapp dimg tag [options] [DIMG] TAG
17
+ dapp dimg list [options] [DIMG ...]
18
+ dapp dimg run [options] [DIMG] [DOCKER ARGS]
19
+ dapp dimg cleanup [options] [DIMG ...]
20
+ dapp dimg mrproper [options]
21
+ dapp dimg stage image [options] [DIMG]
22
+ dapp dimg stages
23
+ dapp dimg build-context
24
+
25
+ Options:
26
+ BANNER
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class List < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg list [options] [DIMG ...]
9
+
10
+ DIMG Dapp image to process [default: *].
11
+
12
+ Options:
13
+ BANNER
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Mrproper < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg mrprooper [options]
9
+
10
+ Options:
11
+ BANNER
12
+ option :proper_all,
13
+ long: '--all',
14
+ boolean: true
15
+
16
+ option :proper_cache_version,
17
+ long: '--improper-cache-version-stages',
18
+ boolean: true
19
+
20
+ option :proper_dev_mode_cache,
21
+ long: '--improper-dev-mode-cache',
22
+ boolean: true
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,61 @@
1
+ module Dapp
2
+ module Dimg
3
+ module CLI
4
+ class Push < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg push [options] [DIMG ...] REPO
9
+
10
+ DIMG Dapp image to process [default: *].
11
+
12
+ Options:
13
+ BANNER
14
+ option :lock_timeout,
15
+ long: '--lock-timeout TIMEOUT',
16
+ description: 'Redefine resource locking timeout (in seconds)',
17
+ proc: ->(v) { v.to_i }
18
+
19
+ option :git_artifact_branch,
20
+ long: '--git-artifact-branch BRANCH',
21
+ description: 'Default branch to archive artifacts from'
22
+
23
+ option :tag,
24
+ long: '--tag TAG',
25
+ description: 'Add tag (can be used one or more times)',
26
+ default: [],
27
+ proc: proc { |v| composite_options(:tags) << v }
28
+
29
+ option :tag_branch,
30
+ long: '--tag-branch',
31
+ description: 'Tag by git branch',
32
+ boolean: true
33
+
34
+ option :tag_build_id,
35
+ long: '--tag-build-id',
36
+ description: 'Tag by CI build id',
37
+ boolean: true
38
+
39
+ option :tag_ci,
40
+ long: '--tag-ci',
41
+ description: 'Tag by CI branch and tag',
42
+ boolean: true
43
+
44
+ option :tag_commit,
45
+ long: '--tag-commit',
46
+ description: 'Tag by git commit',
47
+ boolean: true
48
+
49
+ option :with_stages,
50
+ long: '--with-stages',
51
+ boolean: true
52
+
53
+ def run(argv = ARGV)
54
+ self.class.parse_options(self, argv)
55
+ repo = self.class.required_argument(self)
56
+ ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(class_to_lowercase, repo)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end