dapp 0.10.2 → 0.36.24

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 (287) hide show
  1. checksums.yaml +5 -5
  2. data/bin/dapp +77 -15
  3. data/config/en/common.yml +20 -11
  4. data/config/en/net_status.yml +108 -27
  5. data/lib/dapp/cli/cli.rb +1 -0
  6. data/lib/dapp/cli/command/base.rb +111 -0
  7. data/lib/dapp/cli/command/sample/base.rb +28 -0
  8. data/lib/dapp/cli/command/sample/create.rb +24 -0
  9. data/lib/dapp/cli/command/sample/list.rb +25 -0
  10. data/lib/dapp/cli/command/sample.rb +20 -0
  11. data/lib/dapp/cli/command/slug.rb +26 -0
  12. data/lib/dapp/cli/command/update.rb +65 -0
  13. data/lib/dapp/cli/options/ssh.rb +18 -0
  14. data/lib/dapp/cli/options/tag.rb +51 -0
  15. data/lib/dapp/cli.rb +11 -3
  16. data/lib/dapp/config/config.rb +21 -0
  17. data/lib/dapp/config/directive/base.rb +100 -3
  18. data/lib/dapp/core_ext/hash.rb +14 -0
  19. data/lib/dapp/core_ext/pathname.rb +6 -4
  20. data/lib/dapp/dapp/chef.rb +1 -9
  21. data/lib/dapp/dapp/command/common.rb +24 -0
  22. data/lib/dapp/dapp/command/sample/common.rb +54 -0
  23. data/lib/dapp/dapp/command/sample/create.rb +57 -0
  24. data/lib/dapp/dapp/command/sample/list.rb +13 -0
  25. data/lib/dapp/dapp/command/slug.rb +11 -0
  26. data/lib/dapp/dapp/dapp_config.rb +85 -0
  27. data/lib/dapp/dapp/dappfile.rb +108 -27
  28. data/lib/dapp/dapp/deps/base.rb +9 -32
  29. data/lib/dapp/dapp/deps/common.rb +26 -0
  30. data/lib/dapp/dapp/deps/gitartifact.rb +2 -20
  31. data/lib/dapp/dapp/deps/toolchain.rb +11 -0
  32. data/lib/dapp/dapp/git_artifact.rb +6 -4
  33. data/lib/dapp/dapp/lock.rb +6 -5
  34. data/lib/dapp/dapp/logging/base.rb +32 -20
  35. data/lib/dapp/dapp/logging/i18n.rb +5 -1
  36. data/lib/dapp/dapp/logging/process.rb +6 -6
  37. data/lib/dapp/dapp/option_tags.rb +98 -0
  38. data/lib/dapp/dapp/ruby2go.rb +130 -0
  39. data/lib/dapp/dapp/sentry.rb +97 -0
  40. data/lib/dapp/dapp/shellout/base.rb +26 -18
  41. data/lib/dapp/dapp/shellout/streaming.rb +2 -2
  42. data/lib/dapp/dapp/slug.rb +12 -0
  43. data/lib/dapp/dapp/ssh_agent.rb +25 -7
  44. data/lib/dapp/dapp.rb +192 -41
  45. data/lib/dapp/deployment.rb +1 -0
  46. data/lib/dapp/dimg/artifact.rb +12 -4
  47. data/lib/dapp/dimg/build/stage/artifact_base.rb +26 -30
  48. data/lib/dapp/dimg/build/stage/artifact_default.rb +50 -28
  49. data/lib/dapp/dimg/build/stage/base.rb +187 -52
  50. data/lib/dapp/dimg/build/stage/before_install.rb +4 -15
  51. data/lib/dapp/dimg/build/stage/before_install_artifact.rb +4 -0
  52. data/lib/dapp/dimg/build/stage/before_setup.rb +1 -20
  53. data/lib/dapp/dimg/build/stage/build_artifact.rb +1 -20
  54. data/lib/dapp/dimg/build/stage/docker_instructions.rb +5 -4
  55. data/lib/dapp/dimg/build/stage/from.rb +62 -9
  56. data/lib/dapp/dimg/build/stage/ga_archive.rb +14 -1
  57. data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
  58. data/lib/dapp/dimg/build/stage/ga_base.rb +5 -35
  59. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +15 -34
  60. data/lib/dapp/dimg/build/stage/ga_related_base.rb +21 -0
  61. data/lib/dapp/dimg/build/stage/import_artifact.rb +22 -11
  62. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +6 -2
  63. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +6 -2
  64. data/lib/dapp/dimg/build/stage/install/install.rb +1 -19
  65. data/lib/dapp/dimg/build/stage/instructions.rb +27 -0
  66. data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
  67. data/lib/dapp/dimg/build/stage/mod/logging.rb +15 -19
  68. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +24 -1
  69. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +6 -2
  70. data/lib/dapp/dimg/build/stage/setup/setup.rb +1 -19
  71. data/lib/dapp/dimg/builder/ansible.rb +5 -0
  72. data/lib/dapp/dimg/builder/chef/cookbook.rb +8 -8
  73. data/lib/dapp/dimg/builder/chef.rb +29 -16
  74. data/lib/dapp/dimg/builder/none.rb +1 -34
  75. data/lib/dapp/dimg/builder/ruby2go.rb +57 -0
  76. data/lib/dapp/dimg/builder/shell.rb +1 -20
  77. data/lib/dapp/dimg/cli/cli.rb +2 -1
  78. data/lib/dapp/dimg/cli/command/base.rb +24 -0
  79. data/lib/dapp/dimg/cli/command/dimg/bp.rb +60 -0
  80. data/lib/dapp/dimg/cli/command/dimg/build.rb +43 -0
  81. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +9 -4
  82. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
  83. data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +5 -5
  84. data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +4 -6
  85. data/lib/dapp/dimg/cli/command/dimg/cleanup_repo.rb +47 -0
  86. data/lib/dapp/dimg/cli/command/dimg/flush_local.rb +24 -0
  87. data/lib/dapp/dimg/cli/command/dimg/flush_repo.rb +36 -0
  88. data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +6 -3
  89. data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
  90. data/lib/dapp/dimg/cli/command/dimg/push.rb +39 -0
  91. data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +30 -15
  92. data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
  93. data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +12 -3
  94. data/lib/dapp/dimg/cli/command/dimg/stages/base.rb +13 -0
  95. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +13 -9
  96. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +6 -8
  97. data/lib/dapp/dimg/cli/command/dimg/stages/flush_local.rb +21 -0
  98. data/lib/dapp/dimg/cli/command/dimg/stages/flush_repo.rb +28 -0
  99. data/lib/dapp/dimg/cli/command/dimg/stages/pull.rb +34 -0
  100. data/lib/dapp/dimg/cli/command/dimg/stages/push.rb +30 -0
  101. data/lib/dapp/dimg/cli/command/dimg/stages.rb +22 -0
  102. data/lib/dapp/dimg/cli/command/dimg/tag.rb +24 -0
  103. data/lib/dapp/dimg/cli/command/dimg.rb +31 -0
  104. data/lib/dapp/dimg/cli/options/introspection.rb +45 -0
  105. data/lib/dapp/dimg/config/config.rb +24 -0
  106. data/lib/dapp/dimg/config/directive/artifact.rb +13 -15
  107. data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -8
  108. data/lib/dapp/dimg/config/directive/artifact_dimg.rb +12 -0
  109. data/lib/dapp/dimg/config/directive/artifact_group.rb +60 -0
  110. data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +203 -0
  111. data/lib/dapp/dimg/config/directive/dimg/validation.rb +217 -0
  112. data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
  113. data/lib/dapp/dimg/config/directive/dimg_group.rb +73 -0
  114. data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
  115. data/lib/dapp/dimg/config/directive/docker/artifact.rb +5 -0
  116. data/lib/dapp/dimg/config/directive/docker/base.rb +2 -3
  117. data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
  118. data/lib/dapp/dimg/config/directive/git_artifact_local.rb +24 -5
  119. data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +23 -12
  120. data/lib/dapp/dimg/config/directive/mount.rb +11 -3
  121. data/lib/dapp/dimg/config/directive/shell/dimg.rb +2 -2
  122. data/lib/dapp/dimg/dapp/command/bp.rb +3 -5
  123. data/lib/dapp/dimg/dapp/command/build.rb +4 -6
  124. data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
  125. data/lib/dapp/dimg/dapp/command/build_context/export.rb +14 -14
  126. data/lib/dapp/dimg/dapp/command/build_context/import.rb +28 -23
  127. data/lib/dapp/dimg/dapp/command/cleanup.rb +4 -11
  128. data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +143 -0
  129. data/lib/dapp/dimg/dapp/command/common.rb +148 -38
  130. data/lib/dapp/dimg/dapp/command/flush_local.rb +25 -0
  131. data/lib/dapp/dimg/dapp/command/flush_repo.rb +25 -0
  132. data/lib/dapp/dimg/dapp/command/list.rb +1 -1
  133. data/lib/dapp/dimg/dapp/command/mrproper.rb +16 -63
  134. data/lib/dapp/dimg/dapp/command/push.rb +11 -16
  135. data/lib/dapp/dimg/dapp/command/ruby2go_cleanup.rb +48 -0
  136. data/lib/dapp/dimg/dapp/command/run.rb +4 -4
  137. data/lib/dapp/dimg/dapp/command/spush.rb +4 -5
  138. data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
  139. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +13 -115
  140. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +23 -102
  141. data/lib/dapp/dimg/dapp/command/stages/common.rb +57 -39
  142. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +13 -7
  143. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +14 -8
  144. data/lib/dapp/dimg/dapp/command/stages/pull.rb +4 -13
  145. data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -9
  146. data/lib/dapp/dimg/dapp/command/tag.rb +4 -6
  147. data/lib/dapp/dimg/dapp/config_artifact_group.rb +20 -0
  148. data/lib/dapp/dimg/dapp/dapp.rb +40 -0
  149. data/lib/dapp/dimg/dapp/dappfile.rb +43 -0
  150. data/lib/dapp/dimg/dapp/dimg.rb +41 -0
  151. data/lib/dapp/dimg/dimg/git_artifact.rb +25 -11
  152. data/lib/dapp/dimg/dimg/path.rb +7 -9
  153. data/lib/dapp/dimg/dimg/stages.rb +27 -15
  154. data/lib/dapp/dimg/dimg.rb +172 -69
  155. data/lib/dapp/dimg/docker_registry/base.rb +31 -74
  156. data/lib/dapp/dimg/docker_registry/dimg.rb +55 -0
  157. data/lib/dapp/dimg/docker_registry.rb +5 -23
  158. data/lib/dapp/dimg/error/build.rb +1 -1
  159. data/lib/dapp/dimg/error/chef.rb +1 -5
  160. data/lib/dapp/dimg/error/{command.rb → default.rb} +1 -1
  161. data/lib/dapp/dimg/error/dimg.rb +1 -1
  162. data/lib/dapp/dimg/error/lock.rb +1 -1
  163. data/lib/dapp/dimg/error/registry.rb +1 -1
  164. data/lib/dapp/dimg/error/rugged.rb +1 -1
  165. data/lib/dapp/dimg/error/tar_writer.rb +1 -1
  166. data/lib/dapp/dimg/git_artifact.rb +195 -179
  167. data/lib/dapp/dimg/git_repo/base.rb +49 -45
  168. data/lib/dapp/dimg/git_repo/local.rb +45 -0
  169. data/lib/dapp/dimg/git_repo/own.rb +3 -31
  170. data/lib/dapp/dimg/git_repo/remote.rb +65 -26
  171. data/lib/dapp/dimg/image/argument.rb +15 -50
  172. data/lib/dapp/dimg/image/dimg.rb +15 -0
  173. data/lib/dapp/dimg/image/scratch.rb +35 -9
  174. data/lib/dapp/dimg/image/stage.rb +223 -44
  175. data/lib/dapp/dimg/lock/file.rb +4 -4
  176. data/lib/dapp/downloader.rb +117 -0
  177. data/lib/dapp/error/base.rb +1 -5
  178. data/lib/dapp/error/command.rb +5 -0
  179. data/lib/dapp/error/config.rb +5 -0
  180. data/lib/dapp/error/dapp.rb +1 -1
  181. data/lib/dapp/error/dappfile.rb +1 -1
  182. data/lib/dapp/error/default.rb +11 -0
  183. data/lib/dapp/error/mod/user.rb +11 -0
  184. data/lib/dapp/error/shellout.rb +1 -1
  185. data/lib/dapp/exception/base.rb +1 -1
  186. data/lib/dapp/helper/case_conversion.rb +17 -0
  187. data/lib/dapp/helper/cli.rb +18 -7
  188. data/lib/dapp/helper/net_status.rb +5 -1
  189. data/lib/dapp/helper/sha256.rb +1 -1
  190. data/lib/dapp/helper/tar.rb +31 -0
  191. data/lib/dapp/helper/trivia.rb +40 -1
  192. data/lib/dapp/helper/url.rb +23 -0
  193. data/lib/dapp/helper/yaml.rb +24 -0
  194. data/lib/dapp/kube/cli/cli.rb +1 -0
  195. data/lib/dapp/kube/cli/command/base.rb +14 -0
  196. data/lib/dapp/kube/cli/command/kube/chart_create.rb +19 -0
  197. data/lib/dapp/kube/cli/command/kube/deploy.rb +80 -0
  198. data/lib/dapp/kube/cli/command/kube/dismiss.rb +31 -0
  199. data/lib/dapp/kube/cli/command/kube/lint.rb +53 -0
  200. data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +19 -0
  201. data/lib/dapp/kube/cli/command/kube/render.rb +63 -0
  202. data/lib/dapp/kube/cli/command/kube/secret_edit.rb +30 -0
  203. data/lib/dapp/kube/cli/command/kube/secret_extract.rb +39 -0
  204. data/lib/dapp/kube/cli/command/kube/secret_generate.rb +34 -0
  205. data/lib/dapp/kube/cli/command/kube/secret_key_generate.rb +16 -0
  206. data/lib/dapp/kube/cli/command/kube/secret_regenerate.rb +29 -0
  207. data/lib/dapp/kube/cli/command/kube/value_get.rb +47 -0
  208. data/lib/dapp/kube/cli/command/kube.rb +28 -0
  209. data/lib/dapp/kube/dapp/command/chart_create.rb +103 -0
  210. data/lib/dapp/kube/dapp/command/common.rb +379 -0
  211. data/lib/dapp/kube/dapp/command/deploy.rb +351 -0
  212. data/lib/dapp/kube/dapp/command/dismiss.rb +50 -0
  213. data/lib/dapp/kube/dapp/command/lint.rb +69 -0
  214. data/lib/dapp/kube/dapp/command/minikube_setup.rb +402 -0
  215. data/lib/dapp/kube/dapp/command/render.rb +54 -0
  216. data/lib/dapp/kube/dapp/command/ruby2go.rb +17 -0
  217. data/lib/dapp/kube/dapp/command/secret_edit.rb +21 -0
  218. data/lib/dapp/kube/dapp/command/secret_extract.rb +17 -0
  219. data/lib/dapp/kube/dapp/command/secret_generate.rb +21 -0
  220. data/lib/dapp/kube/dapp/command/secret_key_generate.rb +13 -0
  221. data/lib/dapp/kube/dapp/command/secret_regenerate.rb +13 -0
  222. data/lib/dapp/kube/dapp/command/value_get.rb +32 -0
  223. data/lib/dapp/kube/dapp/dapp.rb +26 -0
  224. data/lib/dapp/kube/error/default.rb +7 -0
  225. data/lib/dapp/kube/helm/release.rb +189 -0
  226. data/lib/dapp/kube/helm/values.rb +148 -0
  227. data/lib/dapp/kube/helm.rb +5 -0
  228. data/lib/dapp/kube/kubernetes/client/error.rb +43 -0
  229. data/lib/dapp/kube/kubernetes/client/resource/base.rb +33 -0
  230. data/lib/dapp/kube/kubernetes/client/resource/deployment.rb +11 -0
  231. data/lib/dapp/kube/kubernetes/client/resource/event.rb +8 -0
  232. data/lib/dapp/kube/kubernetes/client/resource/job.rb +27 -0
  233. data/lib/dapp/kube/kubernetes/client/resource/pod.rb +62 -0
  234. data/lib/dapp/kube/kubernetes/client/resource/replicaset.rb +8 -0
  235. data/lib/dapp/kube/kubernetes/client.rb +314 -0
  236. data/lib/dapp/kube/kubernetes/config.rb +132 -0
  237. data/lib/dapp/kube/kubernetes/error.rb +15 -0
  238. data/lib/dapp/kube/kubernetes/manager/base.rb +15 -0
  239. data/lib/dapp/kube/kubernetes/manager/container.rb +103 -0
  240. data/lib/dapp/kube/kubernetes/manager/deployment.rb +212 -0
  241. data/lib/dapp/kube/kubernetes/manager/job.rb +65 -0
  242. data/lib/dapp/kube/kubernetes/manager/pod.rb +69 -0
  243. data/lib/dapp/kube/kubernetes.rb +6 -0
  244. data/lib/dapp/kube/secret.rb +93 -0
  245. data/lib/dapp/kube.rb +1 -0
  246. data/lib/dapp/version.rb +2 -2
  247. data/lib/dapp.rb +155 -61
  248. metadata +208 -61
  249. data/lib/dapp/cli/base.rb +0 -63
  250. data/lib/dapp/config/base.rb +0 -54
  251. data/lib/dapp/config/error/config.rb +0 -7
  252. data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +0 -27
  253. data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +0 -20
  254. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +0 -22
  255. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -22
  256. data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
  257. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -32
  258. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -22
  259. data/lib/dapp/dimg/cli/base.rb +0 -16
  260. data/lib/dapp/dimg/cli/bp.rb +0 -37
  261. data/lib/dapp/dimg/cli/build.rb +0 -64
  262. data/lib/dapp/dimg/cli/dimg.rb +0 -30
  263. data/lib/dapp/dimg/cli/push.rb +0 -61
  264. data/lib/dapp/dimg/cli/stages/flush_local.rb +0 -23
  265. data/lib/dapp/dimg/cli/stages/flush_repo.rb +0 -24
  266. data/lib/dapp/dimg/cli/stages/pull.rb +0 -28
  267. data/lib/dapp/dimg/cli/stages/push.rb +0 -24
  268. data/lib/dapp/dimg/cli/stages.rb +0 -22
  269. data/lib/dapp/dimg/cli/tag.rb +0 -24
  270. data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
  271. data/lib/dapp/dimg/config/artifact_group.rb +0 -43
  272. data/lib/dapp/dimg/config/base.rb +0 -7
  273. data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
  274. data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
  275. data/lib/dapp/dimg/config/dimg.rb +0 -24
  276. data/lib/dapp/dimg/config/dimg_group.rb +0 -61
  277. data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
  278. data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
  279. data/lib/dapp/dimg/dapp/command.rb +0 -21
  280. data/lib/dapp/dimg/dimg/tags.rb +0 -65
  281. data/lib/dapp/dimg/docker_registry/base/authorization.rb +0 -63
  282. data/lib/dapp/dimg/docker_registry/base/request.rb +0 -34
  283. data/lib/dapp/dimg/docker_registry/default.rb +0 -18
  284. data/lib/dapp/dimg/error/base.rb +0 -7
  285. data/lib/dapp/dimg/error/config.rb +0 -7
  286. data/lib/dapp/dimg/exception/introspect_image.rb +0 -7
  287. data/lib/dapp/dimg/image/docker.rb +0 -134
@@ -0,0 +1,36 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class FlushRepo < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg flush repo [options] [DIMG ...] REPO
9
+
10
+ Options:
11
+ BANNER
12
+
13
+ option :lock_timeout,
14
+ long: '--lock-timeout TIMEOUT',
15
+ description: 'Redefine resource locking timeout (in seconds)',
16
+ proc: ->(v) { v.to_i }
17
+
18
+ option :with_stages,
19
+ long: '--with-stages',
20
+ boolean: true
21
+
22
+ option :registry_username,
23
+ long: '--registry-username USERNAME'
24
+
25
+ option :registry_password,
26
+ long: '--registry-password PASSWORD'
27
+
28
+ def run(argv = ARGV)
29
+ self.class.parse_options(self, argv)
30
+ repo = self.class.required_argument(self, 'repo')
31
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo, verbose: true))
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,6 +1,6 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
4
  class List < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -11,6 +11,9 @@ Usage:
11
11
 
12
12
  Options:
13
13
  BANNER
14
+ def log_running_time
15
+ false
16
+ end
14
17
  end
15
18
  end
16
19
  end
@@ -1,11 +1,11 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
4
  class Mrproper < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
7
7
 
8
- dapp dimg mrprooper [options]
8
+ dapp dimg mrproper [options]
9
9
 
10
10
  Options:
11
11
  BANNER
@@ -0,0 +1,39 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::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
+ extend ::Dapp::CLI::Options::Tag
15
+
16
+ option :lock_timeout,
17
+ long: '--lock-timeout TIMEOUT',
18
+ description: 'Redefine resource locking timeout (in seconds)',
19
+ proc: ->(v) { v.to_i }
20
+
21
+ option :with_stages,
22
+ long: '--with-stages',
23
+ boolean: true
24
+
25
+ option :registry_username,
26
+ long: '--registry-username USERNAME'
27
+
28
+ option :registry_password,
29
+ long: '--registry-password PASSWORD'
30
+
31
+ def run(argv = ARGV)
32
+ self.class.parse_options(self, argv)
33
+ repo = self.class.required_argument(self, 'repo')
34
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo))
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,6 +1,6 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
4
  class Run < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -12,14 +12,15 @@ Usage:
12
12
 
13
13
  Options:
14
14
  BANNER
15
- option :ssh_key,
16
- long: '--ssh-key SSH_KEY',
17
- description: ['Enable only specified ssh keys ',
18
- '(use system ssh-agent by default)'].join,
19
- default: nil,
20
- proc: ->(v) { composite_options(:ssh_key) << v }
21
-
22
- def read_cli_options(args)
15
+
16
+ extend ::Dapp::CLI::Options::Ssh
17
+
18
+ option :stage,
19
+ long: '--stage STAGE',
20
+ description: "Run one of the following stages (#{list_msg_format(DIMG_STAGES)})",
21
+ proc: STAGE_PROC.call(DIMG_STAGES)
22
+
23
+ def read_options(args)
23
24
  self.class.cli_wrapper(self) do
24
25
  args.each_with_index do |arg, i|
25
26
  next if arg == '--'
@@ -31,7 +32,7 @@ BANNER
31
32
  cli_option << args.slice!(i)
32
33
  end
33
34
  parse_options(cli_option)
34
- return read_cli_options(args)
35
+ return read_options(args)
35
36
  end
36
37
  end
37
38
  end
@@ -46,12 +47,26 @@ BANNER
46
47
  end
47
48
 
48
49
  def run(argv = ARGV)
49
- filtered_args = read_cli_options(argv)
50
- pattern = filtered_args.any? && !filtered_args.first.start_with?('-') ? [filtered_args.shift] : []
50
+ filtered_args = read_options(argv)
51
+ patterns = filtered_args.any? && !filtered_args.first.start_with?('-') ? [filtered_args.shift] : []
51
52
  index = filtered_args.index('--') || filtered_args.count
52
53
  docker_options = index.nonzero? ? filtered_args.slice(0..index - 1) : []
53
54
  command = filtered_args.slice(index + 1..-1) || []
54
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: pattern).run(docker_options, command)
55
+
56
+ if docker_options.empty? && command.empty?
57
+ docker_options = %w(-ti --rm)
58
+ command = %w(/bin/bash)
59
+ end
60
+
61
+ stage_name = config.delete(:stage)
62
+
63
+ run_dapp_command(nil, options: cli_options(dimgs_patterns: patterns)) do |dapp|
64
+ dapp.run(stage_name, docker_options, command)
65
+ end
66
+ end
67
+
68
+ def log_running_time
69
+ false
55
70
  end
56
71
  end
57
72
  end
@@ -1,12 +1,12 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
4
  class Spush < Push
5
5
  banner <<BANNER.freeze
6
6
  Usage:
7
7
 
8
8
  dapp dimg spush [options] [DIMG] REPO
9
-
9
+
10
10
  DIMG Dapp image to process [default: *].
11
11
  REPO Pushed image name.
12
12
 
@@ -1,6 +1,6 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
4
  class StageImage < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -18,6 +18,15 @@ BANNER
18
18
  in: [:from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
19
19
  :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
20
20
  :setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions]
21
+ def log_running_time
22
+ false
23
+ end
24
+
25
+ def cli_options(**kwargs)
26
+ super.tap do |config|
27
+ config[:quiet] ||= !config[:verbose]
28
+ end
29
+ end
21
30
  end
22
31
  end
23
32
  end
@@ -0,0 +1,13 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ class Base < Base
6
+ def run_dapp_command(run_command, options: {}, **extra_options)
7
+ super(run_command, options: options.merge(verbose: true), **extra_options)
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,14 +1,12 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
5
  class CleanupLocal < Base
6
6
  banner <<BANNER.freeze
7
7
  Usage:
8
8
 
9
- dapp dimg stages cleanup local [options] [DIMG ...] [REPO]
10
-
11
- DIMG Dapp image to process [default: *].
9
+ dapp dimg stages cleanup local [options] [REPO]
12
10
 
13
11
  Options:
14
12
  BANNER
@@ -24,14 +22,20 @@ BANNER
24
22
  long: '--improper-repo-cache',
25
23
  boolean: true
26
24
 
25
+ option :registry_username,
26
+ long: '--registry-username USERNAME'
27
+
28
+ option :registry_password,
29
+ long: '--registry-password PASSWORD'
30
+
27
31
  def run(argv = ARGV)
28
32
  self.class.parse_options(self, argv)
29
33
  repository = repo
30
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).send(run_method, repository)
34
+ run_dapp_command(run_method, options: cli_options(repo: repository))
31
35
  end
32
36
 
33
37
  def repo
34
- config[:proper_repo_cache] ? self.class.required_argument(self) : nil
38
+ config[:proper_repo_cache] ? self.class.required_argument(self, 'repo') : nil
35
39
  end
36
40
 
37
41
  def run_method
@@ -1,14 +1,12 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
5
  class CleanupRepo < CleanupLocal
6
6
  banner <<BANNER.freeze
7
7
  Usage:
8
8
 
9
- dapp dimg stages cleanup repo [options] [DIMG ...] REPO
10
-
11
- DIMG Dapp image to process [default: *].
9
+ dapp dimg stages cleanup repo [options] REPO
12
10
 
13
11
  Options:
14
12
  BANNER
@@ -17,7 +15,7 @@ BANNER
17
15
  end
18
16
 
19
17
  def repo
20
- self.class.required_argument(self)
18
+ self.class.required_argument(self, 'repo')
21
19
  end
22
20
  end
23
21
  end
@@ -0,0 +1,21 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ class FlushLocal < Base
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg stages flush local [options]
10
+
11
+ Options:
12
+ BANNER
13
+ def run(argv = ARGV)
14
+ self.class.parse_options(self, argv)
15
+ run_dapp_command(:stages_flush_local, options: cli_options)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ class FlushRepo < Base
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg stages flush repo [options] REPO
10
+
11
+ Options:
12
+ BANNER
13
+ option :registry_username,
14
+ long: '--registry-username USERNAME'
15
+
16
+ option :registry_password,
17
+ long: '--registry-password PASSWORD'
18
+
19
+ def run(argv = ARGV)
20
+ self.class.parse_options(self, argv)
21
+ repo = self.class.required_argument(self, 'repo')
22
+ run_dapp_command(:stages_flush_repo, options: cli_options(repo: repo))
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,34 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ class Pull < Base
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg stages pull [options] [DIMG ...] REPO
10
+
11
+ DIMG Dapp image to process [default: *].
12
+
13
+ Options:
14
+ BANNER
15
+ option :pull_all_stages,
16
+ long: '--all',
17
+ boolean: true
18
+
19
+ option :registry_username,
20
+ long: '--registry-username USERNAME'
21
+
22
+ option :registry_password,
23
+ long: '--registry-password PASSWORD'
24
+
25
+ def run(argv = ARGV)
26
+ self.class.parse_options(self, argv)
27
+ repo = self.class.required_argument(self, 'repo')
28
+ run_dapp_command(:stages_pull, options: cli_options(dimgs_patterns: cli_arguments, repo: repo))
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ class Push < Base
6
+ banner <<BANNER.freeze
7
+ Usage:
8
+
9
+ dapp dimg stages push [options] [DIMG ...] REPO
10
+
11
+ DIMG Dapp image to process [default: *].
12
+
13
+ Options:
14
+ BANNER
15
+ option :registry_username,
16
+ long: '--registry-username USERNAME'
17
+
18
+ option :registry_password,
19
+ long: '--registry-password PASSWORD'
20
+
21
+ def run(argv = ARGV)
22
+ self.class.parse_options(self, argv)
23
+ repo = self.class.required_argument(self, 'repo')
24
+ run_dapp_command(:stages_push, options: cli_options(dimgs_patterns: cli_arguments, repo: repo))
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Stages < ::Dapp::CLI
5
+ SUBCOMMANDS = ['flush local', 'flush repo', 'cleanup local', 'cleanup repo', 'push', 'pull'].freeze
6
+
7
+ banner <<BANNER.freeze
8
+ Available subcommands: (for details, dapp dimg stages SUB-COMMAND --help)
9
+
10
+ dapp dimg stages cleanup local [options] [REPO]
11
+ dapp dimg stages cleanup repo [options] REPO
12
+ dapp dimg stages flush local [options]
13
+ dapp dimg stages flush repo [options] REPO
14
+ dapp dimg stages push [options] [DIMG ...] REPO
15
+ dapp dimg stages pull [options] [DIMG ...] REPO
16
+
17
+ Options:
18
+ BANNER
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class Tag < Base
5
+ banner <<BANNER.freeze
6
+ Usage:
7
+
8
+ dapp dimg tag [options] [DIMG ...] REPO
9
+
10
+ DIMG Dapp image to process [default: *].
11
+
12
+ Options:
13
+ BANNER
14
+ extend ::Dapp::CLI::Options::Tag
15
+
16
+ def run(argv = ARGV)
17
+ self.class.parse_options(self, argv)
18
+ repo = self.class.required_argument(self, 'repo')
19
+ run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo, ignore_try_host_docker_login: true))
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ SUBCOMMANDS = ['build', 'push', 'spush', 'list', 'run', 'stages', 'cleanup', 'bp', 'mrproper', 'stage image', 'tag', 'build-context', 'cleanup repo', 'flush local', 'flush repo'].freeze
5
+
6
+ banner <<BANNER.freeze
7
+ Usage: dapp dimg [options] subcommand [subcommand options]
8
+
9
+ Available subcommands: (for details, dapp dimg SUB-COMMAND --help)
10
+
11
+ dapp dimg build [options] [DIMG ...]
12
+ dapp dimg bp [options] [DIMG ...] REPO
13
+ dapp dimg push [options] [DIMG ...] REPO
14
+ dapp dimg spush [options] [DIMG] REPO
15
+ dapp dimg tag [options] [DIMG ...] REPO
16
+ dapp dimg list [options] [DIMG ...]
17
+ dapp dimg run [options] [DIMG] [DOCKER ARGS]
18
+ dapp dimg cleanup repo [options] [DIMG ...] REPO
19
+ dapp dimg flush local [options] [DIMG ...]
20
+ dapp dimg flush repo [options] [DIMG ...] REPO
21
+ dapp dimg cleanup [options]
22
+ dapp dimg mrproper [options]
23
+ dapp dimg stage image [options] [DIMG]
24
+ dapp dimg stages
25
+ dapp dimg build-context
26
+
27
+ Options:
28
+ BANNER
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,45 @@
1
+ module Dapp::Dimg::CLI
2
+ module Options
3
+ module Introspection
4
+ def self.extended(klass)
5
+ artifact_stages = [
6
+ :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
7
+ :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact,
8
+ :g_a_pre_setup_patch, :setup, :after_setup_artifact, :g_a_artifact_patch, :build_artifact
9
+ ]
10
+
11
+ klass.class_eval do
12
+ option :introspect_error,
13
+ long: '--introspect-error',
14
+ boolean: true,
15
+ default: false
16
+
17
+ option :introspect_before_error,
18
+ long: '--introspect-before-error',
19
+ boolean: true,
20
+ default: false
21
+
22
+ option :introspect_stage,
23
+ long: '--introspect-stage STAGE',
24
+ description: "Introspect one of the following stages (#{list_msg_format(klass.const_get(:DIMG_STAGES))})",
25
+ proc: klass.const_get(:STAGE_PROC).call(klass.const_get(:DIMG_STAGES))
26
+
27
+ option :introspect_before,
28
+ long: '--introspect-before STAGE',
29
+ description: "Introspect stage before one of the following stages (#{list_msg_format(klass.const_get(:DIMG_STAGES))})",
30
+ proc: klass.const_get(:STAGE_PROC).call(klass.const_get(:DIMG_STAGES))
31
+
32
+ option :introspect_artifact_stage,
33
+ long: '--introspect-artifact-stage STAGE',
34
+ description: "Introspect one of the following stages (#{list_msg_format(artifact_stages)})",
35
+ proc: klass.const_get(:STAGE_PROC).call(artifact_stages)
36
+
37
+ option :introspect_artifact_before,
38
+ long: '--introspect-artifact-before STAGE',
39
+ description: "Introspect stage before one of the following stages (#{list_msg_format(artifact_stages)})",
40
+ proc: klass.const_get(:STAGE_PROC).call(artifact_stages)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,24 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Config
4
+ module Config
5
+ def self.included(base)
6
+ base.include(Directive::DimgGroupBase)
7
+ end
8
+
9
+ protected
10
+
11
+ def dimg_after_parsing!
12
+ _dimg.each(&:artifacts_after_parsing!)
13
+ end
14
+
15
+ def dimg_config_validate!
16
+ raise ::Dapp::Error::Config, code: :dimg_name_required if _dimg.any? { |dimg| dimg._name.nil? } && _dimg.size > 1
17
+ _dimg.each(&:validate!)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ ::Dapp::Config::Config.send(:include, ::Dapp::Dimg::Config::Config)
@@ -22,6 +22,14 @@ module Dapp
22
22
  attr_accessor :_config
23
23
  attr_accessor :_before, :_after
24
24
 
25
+ def _cwd
26
+ @_cwd ||= @_to
27
+ end
28
+
29
+ def _to
30
+ @_to ||= @_cwd
31
+ end
32
+
25
33
  def before(stage)
26
34
  sub_directive_eval do
27
35
  stage = stage.to_sym
@@ -48,22 +56,12 @@ module Dapp
48
56
  conflict_type = [:before, :after].find { |t| t != type }
49
57
  conflict_stage = public_send("_#{conflict_type}")
50
58
 
51
- raise Error::Config, code: :stage_artifact_not_supported_associated_stage,
52
- data: { stage: "#{type} #{stage.inspect}" } unless [:install, :setup].include? stage
53
-
54
- raise Error::Config, code: :stage_artifact_double_associate,
55
- data: { stage: "#{type} #{stage.inspect}",
56
- conflict_stage: "#{conflict_type} #{conflict_stage.inspect}" } if conflict_stage
59
+ raise ::Dapp::Error::Config, code: :stage_artifact_not_supported_associated_stage,
60
+ data: { stage: "#{type} #{stage.inspect}" } unless [:install, :setup].include? stage
57
61
 
58
- defined_stage = public_send("_#{type}")
59
- dapp.log_config_warning(
60
- desc: {
61
- code: :stage_artifact_rewritten,
62
- context: :warning,
63
- data: { stage: "#{type} #{stage.inspect}",
64
- conflict_stage: "#{type} #{defined_stage.inspect}" }
65
- }
66
- ) if defined_stage
62
+ raise ::Dapp::Error::Config, code: :stage_artifact_double_associate,
63
+ data: { stage: "#{type} #{stage.inspect}",
64
+ conflict_stage: "#{conflict_type} #{conflict_stage.inspect}" } if conflict_stage
67
65
  end
68
66
  end
69
67
  end