dapp 0.11.0 → 0.12.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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/config/en/net_status.yml +36 -4
  3. data/lib/dapp.rb +84 -36
  4. data/lib/dapp/cli.rb +3 -2
  5. data/lib/dapp/cli/command/base.rb +69 -0
  6. data/lib/dapp/config/config.rb +17 -0
  7. data/lib/dapp/config/directive/base.rb +90 -3
  8. data/lib/dapp/dapp.rb +6 -14
  9. data/lib/dapp/dapp/dappfile.rb +20 -27
  10. data/lib/dapp/dapp/deps/base.rb +2 -2
  11. data/lib/dapp/dapp/lock.rb +1 -1
  12. data/lib/dapp/dapp/logging/base.rb +11 -7
  13. data/lib/dapp/dapp/logging/process.rb +4 -2
  14. data/lib/dapp/dapp/shellout/base.rb +2 -2
  15. data/lib/dapp/dapp/ssh_agent.rb +2 -2
  16. data/lib/dapp/deployment.rb +1 -0
  17. data/lib/dapp/deployment/app.rb +120 -0
  18. data/lib/dapp/deployment/cli/cli.rb +1 -0
  19. data/lib/dapp/deployment/cli/command/base.rb +14 -0
  20. data/lib/dapp/deployment/cli/command/deployment.rb +21 -0
  21. data/lib/dapp/deployment/cli/command/deployment/apply.rb +26 -0
  22. data/lib/dapp/deployment/cli/command/deployment/minikube_setup.rb +13 -0
  23. data/lib/dapp/deployment/cli/command/deployment/mrproper.rb +13 -0
  24. data/lib/dapp/deployment/cli/command/deployment/secret_generate.rb +13 -0
  25. data/lib/dapp/deployment/cli/command/deployment/secret_key_generate.rb +13 -0
  26. data/lib/dapp/deployment/config/config.rb +46 -0
  27. data/lib/dapp/deployment/config/directive/app.rb +28 -0
  28. data/lib/dapp/deployment/config/directive/app/instance_methods.rb +51 -0
  29. data/lib/dapp/deployment/config/directive/base.rb +13 -0
  30. data/lib/dapp/deployment/config/directive/deployment.rb +11 -0
  31. data/lib/dapp/deployment/config/directive/expose.rb +68 -0
  32. data/lib/dapp/deployment/config/directive/group.rb +27 -0
  33. data/lib/dapp/deployment/config/directive/job.rb +28 -0
  34. data/lib/dapp/deployment/config/directive/mod/group.rb +22 -0
  35. data/lib/dapp/deployment/config/directive/mod/jobs.rb +26 -0
  36. data/lib/dapp/deployment/config/directive/namespace.rb +26 -0
  37. data/lib/dapp/deployment/config/directive/namespace/instance_methods.rb +37 -0
  38. data/lib/dapp/deployment/core_ext/hash.rb +19 -0
  39. data/lib/dapp/deployment/dapp/command/apply.rb +83 -0
  40. data/lib/dapp/deployment/dapp/command/common.rb +17 -0
  41. data/lib/dapp/deployment/dapp/command/minikube_setup.rb +393 -0
  42. data/lib/dapp/deployment/dapp/command/mrproper.rb +12 -0
  43. data/lib/dapp/deployment/dapp/command/secret_generate.rb +17 -0
  44. data/lib/dapp/deployment/dapp/command/secret_key_generate.rb +13 -0
  45. data/lib/dapp/deployment/dapp/dapp.rb +18 -0
  46. data/lib/dapp/deployment/dapp/dappfile.rb +23 -0
  47. data/lib/dapp/deployment/deployment.rb +46 -0
  48. data/lib/dapp/deployment/error/app.rb +7 -0
  49. data/lib/dapp/deployment/error/base.rb +7 -0
  50. data/lib/dapp/deployment/error/command.rb +7 -0
  51. data/lib/dapp/deployment/error/config.rb +7 -0
  52. data/lib/dapp/deployment/error/deployment.rb +7 -0
  53. data/lib/dapp/deployment/error/kubernetes.rb +7 -0
  54. data/lib/dapp/deployment/kube_app.rb +277 -0
  55. data/lib/dapp/deployment/kube_base.rb +97 -0
  56. data/lib/dapp/deployment/kube_deployment.rb +51 -0
  57. data/lib/dapp/deployment/kubernetes.rb +174 -0
  58. data/lib/dapp/deployment/kubernetes/error.rb +20 -0
  59. data/lib/dapp/deployment/mod/jobs.rb +37 -0
  60. data/lib/dapp/deployment/mod/namespace.rb +58 -0
  61. data/lib/dapp/deployment/mod/system_environments.rb +30 -0
  62. data/lib/dapp/deployment/secret.rb +93 -0
  63. data/lib/dapp/dimg/artifact.rb +1 -1
  64. data/lib/dapp/dimg/build/stage/artifact_default.rb +35 -23
  65. data/lib/dapp/dimg/build/stage/base.rb +1 -1
  66. data/lib/dapp/dimg/build/stage/before_setup.rb +0 -2
  67. data/lib/dapp/dimg/build/stage/build_artifact.rb +0 -2
  68. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +2 -2
  69. data/lib/dapp/dimg/build/stage/install/install.rb +0 -1
  70. data/lib/dapp/dimg/build/stage/setup/setup.rb +0 -1
  71. data/lib/dapp/dimg/cli/cli.rb +1 -1
  72. data/lib/dapp/dimg/cli/command/base.rb +14 -0
  73. data/lib/dapp/dimg/cli/{dimg.rb → command/dimg.rb} +5 -7
  74. data/lib/dapp/dimg/cli/{bp.rb → command/dimg/bp.rb} +3 -3
  75. data/lib/dapp/dimg/cli/{build.rb → command/dimg/build.rb} +3 -3
  76. data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +3 -3
  77. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +4 -4
  78. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
  79. data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +3 -3
  80. data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +3 -3
  81. data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
  82. data/lib/dapp/dimg/cli/{push.rb → command/dimg/push.rb} +5 -5
  83. data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +8 -8
  84. data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
  85. data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +3 -3
  86. data/lib/dapp/dimg/cli/{stages.rb → command/dimg/stages.rb} +3 -3
  87. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +6 -6
  88. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +5 -5
  89. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_local.rb +5 -5
  90. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_repo.rb +6 -6
  91. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/pull.rb +6 -6
  92. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/push.rb +6 -6
  93. data/lib/dapp/dimg/cli/{tag.rb → command/dimg/tag.rb} +6 -6
  94. data/lib/dapp/dimg/config/config.rb +20 -0
  95. data/lib/dapp/dimg/config/directive/artifact_dimg.rb +19 -0
  96. data/lib/dapp/dimg/config/directive/artifact_group.rb +45 -0
  97. data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
  98. data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +149 -0
  99. data/lib/dapp/dimg/config/directive/dimg/validation.rb +128 -0
  100. data/lib/dapp/dimg/config/directive/dimg_group.rb +64 -0
  101. data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
  102. data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
  103. data/lib/dapp/dimg/config/directive/shell/dimg.rb +1 -1
  104. data/lib/dapp/dimg/dapp/command/bp.rb +4 -4
  105. data/lib/dapp/dimg/dapp/command/build.rb +2 -2
  106. data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
  107. data/lib/dapp/dimg/dapp/command/build_context/export.rb +1 -1
  108. data/lib/dapp/dimg/dapp/command/build_context/import.rb +1 -1
  109. data/lib/dapp/dimg/dapp/command/cleanup.rb +1 -1
  110. data/lib/dapp/dimg/dapp/command/common.rb +19 -4
  111. data/lib/dapp/dimg/dapp/command/list.rb +1 -1
  112. data/lib/dapp/dimg/dapp/command/mrproper.rb +3 -3
  113. data/lib/dapp/dimg/dapp/command/push.rb +6 -5
  114. data/lib/dapp/dimg/dapp/command/run.rb +1 -1
  115. data/lib/dapp/dimg/dapp/command/spush.rb +4 -3
  116. data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
  117. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +1 -1
  118. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +3 -3
  119. data/lib/dapp/dimg/dapp/command/stages/common.rb +4 -4
  120. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +1 -1
  121. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +1 -1
  122. data/lib/dapp/dimg/dapp/command/stages/pull.rb +5 -4
  123. data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -3
  124. data/lib/dapp/dimg/dapp/command/tag.rb +3 -2
  125. data/lib/dapp/dimg/dapp/dapp.rb +33 -0
  126. data/lib/dapp/dimg/dapp/dappfile.rb +25 -0
  127. data/lib/dapp/dimg/dimg.rb +3 -3
  128. data/lib/dapp/dimg/dimg/path.rb +1 -1
  129. data/lib/dapp/dimg/dimg/stages.rb +1 -1
  130. data/lib/dapp/dimg/dimg/tags.rb +5 -5
  131. data/lib/dapp/dimg/docker_registry.rb +3 -7
  132. data/lib/dapp/dimg/git_artifact.rb +30 -14
  133. data/lib/dapp/dimg/git_repo/base.rb +13 -1
  134. data/lib/dapp/dimg/git_repo/own.rb +9 -1
  135. data/lib/dapp/dimg/image/docker.rb +9 -3
  136. data/lib/dapp/helper/cli.rb +3 -1
  137. data/lib/dapp/helper/net_status.rb +5 -1
  138. data/lib/dapp/helper/trivia.rb +1 -1
  139. data/lib/dapp/version.rb +2 -2
  140. metadata +84 -38
  141. data/lib/dapp/cli/base.rb +0 -63
  142. data/lib/dapp/config/base.rb +0 -54
  143. data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
  144. data/lib/dapp/dimg/cli/base.rb +0 -16
  145. data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
  146. data/lib/dapp/dimg/config/artifact_group.rb +0 -43
  147. data/lib/dapp/dimg/config/base.rb +0 -7
  148. data/lib/dapp/dimg/config/dimg.rb +0 -24
  149. data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
  150. data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
  151. data/lib/dapp/dimg/config/dimg_group.rb +0 -61
  152. data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
  153. data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
  154. data/lib/dapp/dimg/dapp/command.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9bde6d6e0a2f2f7d9d630dfd5307d87900aefba
4
- data.tar.gz: 4cfa173162595e257a8e5e0f0c8fbd70dba8c576
3
+ metadata.gz: 75c3a3047f2f78af31a7a33c972454b929a165f2
4
+ data.tar.gz: 9047d134234568ac750fd1ba4726e6628a9e515d
5
5
  SHA512:
6
- metadata.gz: 0a5fcb98d67e9d4111b22d4252623e661c348dfdb1bc0d7ff4404a2db8d9f1ba164782aa0953c8186edd641363f067261d251ecf8f505805daa18add74f5088e
7
- data.tar.gz: 7d001567b2075340f756334d281c23d7eb4bff6331d34299e23203d79a04fb0e0730217f2c8ccf424b52862d30adf65c4f07f0046424e0046c557ae4fff0f333
6
+ metadata.gz: f0d3db56d2c2035b3a4c4a1e4f9f71c72874201110de648f880ad3b853d794f316438b8f8e5988b5941a9cacf0ee32ffd08ba02a98783a524b3629fa455fb947
7
+ data.tar.gz: 0e03117d5a43c2c1285ad2c77e3be37ce6c3a4d0d58b2a9c2da4652508694cca346b6cc1aac49e4d87442c62295baf23af19ab4fbb28da3bfa484f3f7407c0d7
@@ -22,18 +22,23 @@ en:
22
22
  command_unexpected_dimgs_number: "Command can process only one dimg!\nAmbiguous dimg pattern: `%{dimgs_names}`!"
23
23
  mrproper_required_option: "Expected command option `--improper-dev-mode-cache`, `--improper-cache-version-stages` or `--all`!"
24
24
  stages_cleanup_required_option: "Expected command option `--improper-cache-version`, `--improper-git-commit` or `--improper-repo-cache`!"
25
- tag_command_incorrect_tag: "Incorrect tag (`%{name}`) given!"
26
- repo_name_incorrect: "Incorrect repo (`%{name}`) given!"
25
+ repo_name_incorrect: "Incorrect repo name `%{name}` given!"
26
+ image_name_incorrect: "Incorrect image name `%{name}` given!"
27
+ tag_name_incorrect: "Incorrect tag name `%{name}` given!"
27
28
  context_directory_not_found: "Context directory `%{path}` not found!"
28
29
  stored_build_dir_already_exist: "Cannot store current build_dir `%{path}`: restore or delete old build_dir!"
30
+ secret_key_not_found: "Secret key `DAPP_SECRET_KEY` not found!"
31
+ minikube_not_found: "Minikube not found: install minikube (https://github.com/kubernetes/minikube/releases)!"
32
+ minikube_not_started: "Minikube not started!"
29
33
  dapp:
30
34
  no_such_dimg: "No such dimg: `%{dimgs_patterns}`!"
35
+ no_such_app: "No such app: `%{apps_patterns}`!"
31
36
  dappfile_not_found: "Dappfile not found!"
32
37
  cannot_run_ssh_agent: "Cannot run ssh-agent"
33
38
  ssh_key_not_found: "Ssh key `%{path}` not exist!"
34
39
  config:
35
40
  dimg_name_required: 'Dimg name required!'
36
- dimg_name_incorrect: "Dimg has incorrect name `%{name}`: doesn't match regex `%{reg}`!"
41
+ dimg_name_incorrect: "Dimg has incorrect name `%{value}`: doesn't match regex `%{pattern}`!"
37
42
  mount_from_required: "Mount: `from` directive required!"
38
43
  export_to_required: "Export: `to` directive required!"
39
44
  add_to_required: "Add: `to` directive required!"
@@ -45,7 +50,6 @@ en:
45
50
  mount_from_absolute_path_required: "Mount: given `from` path must be absolute!"
46
51
  mount_from_type_required: "Mount: `from` directive expect `build_dir` or `tmp_dir` type!"
47
52
  builder_type_conflict: 'Conflict between builder types!'
48
- builder_type_unsupported: "Defined unsupported builder type `%{type}`!"
49
53
  docker_from_incorrect: "`docker.from` has incorrect value `%{name}`!"
50
54
  docker_from_without_tag: "`docker.from`: image `%{name}` without tag!"
51
55
  stage_artifact_not_associated: "Artifact not associated with any stage: expected `before` or `after` attribute!"
@@ -58,6 +62,22 @@ en:
58
62
  scratch_artifact_required: "Scratch dimg without artifacts!"
59
63
  scratch_artifact_associated: "Scratch artifact cannot be associated: not expected `before`/`after` attribute!"
60
64
  scratch_artifact_docker_from: "Scratch artifact must have directive `docker.from`!"
65
+ unsupported_scale_value: "Define unsupported scale value `%{value}`!"
66
+ app_name_required: 'App name required!'
67
+ app_dimg_not_found: 'Not found dimg `%{dimg}` for app `%{app}`!'
68
+ app_dimg_not_defined: 'Not defined dimg for app `%{app}`!'
69
+ app_bootstrap_dimg_not_defined: "Not defined dimg for app.bootstrap!"
70
+ app_bootstrap_dimg_not_found: "Not found dimg `%{dimg}` for app.bootstrap!"
71
+ app_before_apply_job_dimg_not_defined: "Not defined dimg for app.before_apply_job!"
72
+ app_before_apply_job_dimg_not_found: "Not found dimg `%{dimg}` for app.before_apply_job!"
73
+ unsupported_port_number: 'Port number `%{number}` doesn`t support!'
74
+ unsupported_target_number: 'Target number `%{number}` doesn`t support!'
75
+ app_name_incorrect: "App has incorrect name `%{value}`: doesn't match regex `%{pattern}`!"
76
+ namespace_name_incorrect: "Namespace has incorrect name `%{value}`: doesn't match regex `%{pattern}`!"
77
+ deployment_bootstrap_dimg_not_defined: "Not defined dimg for deployment.bootstrap!"
78
+ deployment_bootstrap_dimg_not_found: "Not found dimg `%{dimg}` for deployment.bootstrap!"
79
+ deployment_before_apply_job_dimg_not_defined: "Not defined dimg for deployment.before_apply_job!"
80
+ deployment_before_apply_job_dimg_not_found: "Not found dimg `%{dimg}` for deployment.before_apply_job!"
61
81
  chef:
62
82
  stage_checksum_not_calculated: "Chef stage `%{stage}` checksum is not calculated yet, run build first"
63
83
  stage_path_overlap: "Cannot install `%{cookbook}` cookbook's path %{from} into %{to}: already exists"
@@ -77,3 +97,15 @@ en:
77
97
  branch_not_exist_in_remote_git_repository: "Remote git repo `%{url}`: branch `%{branch}` not exist!"
78
98
  lock:
79
99
  timeout: "Could not obtain lock for `%{name}` within %{timeout} seconds"
100
+ app:
101
+ namespace_not_found: "App `%{name}`: namespace `%{namespace}` not found!"
102
+ namespace_not_defined: "App `%{name}`: namespace not defined!"
103
+ deployment:
104
+ namespace_not_found: "Deployment `%{name}`: namespace `%{namespace}` not found!"
105
+ namespace_not_defined: "Deployment `%{name}`: namespace not defined!"
106
+ bootstrap_failed: "Bootstrap failed:\n phase: `%{phase}`\n message: `%{message}`"
107
+ bootstrap_command_failed: "Bootstrap failed:\n reason: `%{reason}`\n message: `%{message}`\n exit_code: `%{exit_code}`"
108
+ bootstrap_image_not_found: "Bootstrap failed because `%{reason}`: `%{message}`"
109
+ kubernetes:
110
+ kube_config_not_found: "Kube config `%{path}` not found!"
111
+ kube_server_connection_refused: "Kube server `%{url}` connection refused!"
@@ -18,8 +18,10 @@ require 'inifile'
18
18
  require 'rugged'
19
19
  require 'rubygems/package'
20
20
  require 'murmurhash3'
21
-
22
21
  require 'net_status'
22
+ require 'yaml'
23
+ require 'openssl'
24
+ require 'etc'
23
25
 
24
26
  require 'dapp/version'
25
27
  require 'dapp/core_ext/hash'
@@ -35,9 +37,9 @@ require 'dapp/error/dappfile'
35
37
  require 'dapp/error/shellout'
36
38
  require 'dapp/exception/base'
37
39
  require 'dapp/cli'
38
- require 'dapp/cli/base'
39
- require 'dapp/config/base'
40
+ require 'dapp/cli/command/base'
40
41
  require 'dapp/config/directive/base'
42
+ require 'dapp/config/config'
41
43
  require 'dapp/config/error/config'
42
44
  require 'dapp/dapp/lock'
43
45
  require 'dapp/dapp/ssh_agent'
@@ -53,6 +55,53 @@ require 'dapp/dapp/deps/gitartifact'
53
55
  require 'dapp/dapp/shellout/streaming'
54
56
  require 'dapp/dapp/shellout/base'
55
57
  require 'dapp/dapp'
58
+ require 'dapp/deployment'
59
+ require 'dapp/deployment/config/directive/mod/group'
60
+ require 'dapp/deployment/config/directive/mod/jobs'
61
+ require 'dapp/deployment/error/base'
62
+ require 'dapp/deployment/error/config'
63
+ require 'dapp/deployment/error/app'
64
+ require 'dapp/deployment/error/command'
65
+ require 'dapp/deployment/error/kubernetes'
66
+ require 'dapp/deployment/error/deployment'
67
+ require 'dapp/deployment/config/directive/base'
68
+ require 'dapp/deployment/config/directive/expose'
69
+ require 'dapp/deployment/config/directive/namespace/instance_methods'
70
+ require 'dapp/deployment/config/directive/namespace'
71
+ require 'dapp/deployment/config/directive/app/instance_methods'
72
+ require 'dapp/deployment/config/directive/app'
73
+ require 'dapp/deployment/config/directive/group'
74
+ require 'dapp/deployment/config/directive/deployment'
75
+ require 'dapp/deployment/config/directive/job'
76
+ require 'dapp/deployment/config/config'
77
+ require 'dapp/deployment/core_ext/hash'
78
+ require 'dapp/deployment/mod/namespace'
79
+ require 'dapp/deployment/mod/system_environments'
80
+ require 'dapp/deployment/mod/jobs'
81
+ require 'dapp/deployment/app'
82
+ require 'dapp/deployment/deployment'
83
+ require 'dapp/deployment/kube_base'
84
+ require 'dapp/deployment/kube_app'
85
+ require 'dapp/deployment/kube_deployment'
86
+ require 'dapp/deployment/kubernetes'
87
+ require 'dapp/deployment/kubernetes/error'
88
+ require 'dapp/deployment/cli/command/base'
89
+ require 'dapp/deployment/cli/command/deployment'
90
+ require 'dapp/deployment/cli/command/deployment/apply'
91
+ require 'dapp/deployment/cli/command/deployment/mrproper'
92
+ require 'dapp/deployment/cli/command/deployment/secret_key_generate'
93
+ require 'dapp/deployment/cli/command/deployment/secret_generate'
94
+ require 'dapp/deployment/cli/command/deployment/minikube_setup'
95
+ require 'dapp/deployment/cli/cli'
96
+ require 'dapp/deployment/dapp/command/mrproper'
97
+ require 'dapp/deployment/dapp/command/apply'
98
+ require 'dapp/deployment/dapp/command/secret_key_generate'
99
+ require 'dapp/deployment/dapp/command/secret_generate'
100
+ require 'dapp/deployment/dapp/command/minikube_setup'
101
+ require 'dapp/deployment/dapp/command/common'
102
+ require 'dapp/deployment/dapp/dappfile'
103
+ require 'dapp/deployment/dapp/dapp'
104
+ require 'dapp/deployment/secret'
56
105
  require 'dapp/dimg'
57
106
  require 'dapp/dimg/builder'
58
107
  require 'dapp/dimg/builder/base'
@@ -64,7 +113,6 @@ require 'dapp/dimg/builder/shell'
64
113
  require 'dapp/dimg/builder/none'
65
114
  require 'dapp/dimg/build/stage/mod/logging'
66
115
  require 'dapp/dimg/build/stage/mod/group'
67
- require 'dapp/dimg/build/stage/mod/git_artifact_dependencies'
68
116
  require 'dapp/dimg/build/stage/base'
69
117
  require 'dapp/dimg/build/stage/ga_base'
70
118
  require 'dapp/dimg/build/stage/ga_dependencies_base'
@@ -94,39 +142,37 @@ require 'dapp/dimg/build/stage/ga_latest_patch'
94
142
  require 'dapp/dimg/build/stage/docker_instructions'
95
143
  require 'dapp/dimg/build/stage/ga_artifact_patch'
96
144
  require 'dapp/dimg/build/stage/build_artifact'
97
- require 'dapp/dimg/cli/base'
98
- require 'dapp/dimg/cli/dimg'
99
- require 'dapp/dimg/cli/build'
100
- require 'dapp/dimg/cli/push'
101
- require 'dapp/dimg/cli/spush'
102
- require 'dapp/dimg/cli/tag'
103
- require 'dapp/dimg/cli/list'
104
- require 'dapp/dimg/cli/build_context'
105
- require 'dapp/dimg/cli/build_context/export'
106
- require 'dapp/dimg/cli/build_context/import'
107
- require 'dapp/dimg/cli/stages'
108
- require 'dapp/dimg/cli/stages/flush_local'
109
- require 'dapp/dimg/cli/stages/flush_repo'
110
- require 'dapp/dimg/cli/stages/cleanup_local'
111
- require 'dapp/dimg/cli/stages/cleanup_repo'
112
- require 'dapp/dimg/cli/stages/push'
113
- require 'dapp/dimg/cli/stages/pull'
114
- require 'dapp/dimg/cli/run'
115
- require 'dapp/dimg/cli/cleanup'
116
- require 'dapp/dimg/cli/bp'
117
- require 'dapp/dimg/cli/mrproper'
118
- require 'dapp/dimg/cli/stage_image'
145
+ require 'dapp/dimg/cli/command/base'
146
+ require 'dapp/dimg/cli/command/dimg'
147
+ require 'dapp/dimg/cli/command/dimg/build'
148
+ require 'dapp/dimg/cli/command/dimg/push'
149
+ require 'dapp/dimg/cli/command/dimg/spush'
150
+ require 'dapp/dimg/cli/command/dimg/tag'
151
+ require 'dapp/dimg/cli/command/dimg/list'
152
+ require 'dapp/dimg/cli/command/dimg/build_context'
153
+ require 'dapp/dimg/cli/command/dimg/build_context/export'
154
+ require 'dapp/dimg/cli/command/dimg/build_context/import'
155
+ require 'dapp/dimg/cli/command/dimg/stages'
156
+ require 'dapp/dimg/cli/command/dimg/stages/flush_local'
157
+ require 'dapp/dimg/cli/command/dimg/stages/flush_repo'
158
+ require 'dapp/dimg/cli/command/dimg/stages/cleanup_local'
159
+ require 'dapp/dimg/cli/command/dimg/stages/cleanup_repo'
160
+ require 'dapp/dimg/cli/command/dimg/stages/push'
161
+ require 'dapp/dimg/cli/command/dimg/stages/pull'
162
+ require 'dapp/dimg/cli/command/dimg/run'
163
+ require 'dapp/dimg/cli/command/dimg/cleanup'
164
+ require 'dapp/dimg/cli/command/dimg/bp'
165
+ require 'dapp/dimg/cli/command/dimg/mrproper'
166
+ require 'dapp/dimg/cli/command/dimg/stage_image'
119
167
  require 'dapp/dimg/cli/cli'
120
- require 'dapp/dimg/config/base'
121
168
  require 'dapp/dimg/config/directive/base'
122
- require 'dapp/dimg/config/dimg/instance_methods'
123
- require 'dapp/dimg/config/dimg/validation'
124
- require 'dapp/dimg/config/dimg'
125
- require 'dapp/dimg/config/artifact_dimg'
126
- require 'dapp/dimg/config/dimg_group_base'
127
- require 'dapp/dimg/config/dimg_group_main'
128
- require 'dapp/dimg/config/dimg_group'
129
- require 'dapp/dimg/config/artifact_group'
169
+ require 'dapp/dimg/config/directive/dimg/instance_methods'
170
+ require 'dapp/dimg/config/directive/dimg/validation'
171
+ require 'dapp/dimg/config/directive/dimg'
172
+ require 'dapp/dimg/config/directive/artifact_dimg'
173
+ require 'dapp/dimg/config/directive/dimg_group_base'
174
+ require 'dapp/dimg/config/directive/dimg_group'
175
+ require 'dapp/dimg/config/directive/artifact_group'
130
176
  require 'dapp/dimg/config/directive/artifact_base'
131
177
  require 'dapp/dimg/config/directive/git_artifact_local'
132
178
  require 'dapp/dimg/config/directive/git_artifact_remote'
@@ -138,6 +184,7 @@ require 'dapp/dimg/config/directive/docker/base'
138
184
  require 'dapp/dimg/config/directive/docker/dimg'
139
185
  require 'dapp/dimg/config/directive/docker/artifact'
140
186
  require 'dapp/dimg/config/directive/mount'
187
+ require 'dapp/dimg/config/config'
141
188
  require 'dapp/dimg/dapp/command/common'
142
189
  require 'dapp/dimg/dapp/command/build'
143
190
  require 'dapp/dimg/dapp/command/bp'
@@ -159,7 +206,8 @@ require 'dapp/dimg/dapp/command/stages/pull'
159
206
  require 'dapp/dimg/dapp/command/build_context/export'
160
207
  require 'dapp/dimg/dapp/command/build_context/import'
161
208
  require 'dapp/dimg/dapp/command/build_context/common'
162
- require 'dapp/dimg/dapp/command'
209
+ require 'dapp/dimg/dapp/dappfile'
210
+ require 'dapp/dimg/dapp/dapp'
163
211
  require 'dapp/dimg/docker_registry'
164
212
  require 'dapp/dimg/docker_registry/base/request'
165
213
  require 'dapp/dimg/docker_registry/base/authorization'
@@ -5,14 +5,15 @@ module Dapp
5
5
  extend Helper::Cli
6
6
  include Helper::Trivia
7
7
 
8
- SUBCOMMANDS = ['dimg'].freeze
8
+ SUBCOMMANDS = ['dimg', 'deployment'].freeze
9
9
 
10
10
  banner <<BANNER.freeze
11
- Usage: dapp [options] sub-command [sub-command options]
11
+ Usage: dapp sub-command [sub-command options]
12
12
 
13
13
  Available subcommands: (for details, dapp SUB-COMMAND --help)
14
14
 
15
15
  dapp dimg
16
+ dapp deployment
16
17
 
17
18
  Options:
18
19
  BANNER
@@ -0,0 +1,69 @@
1
+ module Dapp
2
+ class CLI
3
+ module Command
4
+ class Base < ::Dapp::CLI
5
+ option :dir,
6
+ long: '--dir PATH',
7
+ description: 'Change to directory',
8
+ on: :head
9
+
10
+ option :build_dir,
11
+ long: '--build-dir PATH',
12
+ description: 'Directory where build cache stored (DIR/.dapp_build by default)'
13
+
14
+ option :log_quiet,
15
+ short: '-q',
16
+ long: '--quiet',
17
+ description: 'Suppress logging',
18
+ default: false,
19
+ boolean: true
20
+
21
+ option :log_verbose,
22
+ long: '--verbose',
23
+ description: 'Enable verbose output',
24
+ default: false,
25
+ boolean: true
26
+
27
+ option :log_time,
28
+ long: '--time',
29
+ description: 'Enable output with time',
30
+ default: false,
31
+ boolean: true
32
+
33
+ option :ignore_config_warning,
34
+ long: '--ignore-config-sequential-processing-warnings',
35
+ default: false,
36
+ boolean: true
37
+
38
+ option :log_color,
39
+ long: '--color MODE',
40
+ description: 'Display output in color on the terminal',
41
+ in: %w(auto on off),
42
+ default: 'auto'
43
+
44
+ option :dry_run,
45
+ long: '--dry-run',
46
+ default: false,
47
+ boolean: true
48
+
49
+ option :dev,
50
+ long: '--dev',
51
+ default: false,
52
+ boolean: true
53
+
54
+ def initialize
55
+ self.class.options.merge!(Base.options)
56
+ super()
57
+ end
58
+
59
+ def run(_argv = ARGV)
60
+ raise
61
+ end
62
+
63
+ def cli_options(**kvargs)
64
+ config.merge(**kvargs)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,17 @@
1
+ module Dapp
2
+ module Config
3
+ class Config < Directive::Base
4
+ def dev_mode
5
+ @_dev_mode = true
6
+ end
7
+
8
+ def _dev_mode
9
+ !!@_dev_mode
10
+ end
11
+
12
+ def validate!
13
+ do_all!('_validate!')
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,20 +1,107 @@
1
1
  module Dapp
2
2
  module Config
3
3
  module Directive
4
- class Base < Config::Base
4
+ class Base
5
+ def initialize(dapp:, &blk)
6
+ @dapp = dapp
7
+ initialize_variables
8
+ instance_eval(&blk) if block_given?
9
+ end
10
+
5
11
  def clone
6
12
  _clone
7
13
  end
8
14
 
9
15
  protected
10
16
 
17
+ attr_reader :dapp
18
+
19
+ def path_format(path)
20
+ path.to_s.chomp('/')
21
+ end
22
+
23
+ def validate_compliance!(pattern, value, error_code)
24
+ raise Error::Config, code: error_code, data: { value: value, pattern: pattern } unless /^#{pattern}$/ =~ value
25
+ end
26
+
27
+ def initialize_variables
28
+ do_all!('_init_variables!')
29
+ end
30
+
31
+ def do_all!(postfix)
32
+ methods
33
+ .select { |m| m.to_s.end_with? postfix }
34
+ .each(&method(:send))
35
+ end
36
+
37
+ def directive_eval(directive, &blk)
38
+ directive.instance_eval(&blk) if block_given?
39
+ directive
40
+ end
41
+
11
42
  def sub_directive_eval
12
43
  yield if block_given?
13
44
  self
14
45
  end
15
46
 
16
- def path_format(path)
17
- path.to_s.chomp('/')
47
+ def pass_to(obj, clone_method = :clone)
48
+ passed_directives.each do |directive|
49
+ next if (variable = instance_variable_get(directive)).nil?
50
+
51
+ obj.instance_variable_set(directive, begin
52
+ case variable
53
+ when Base then variable.public_send(clone_method)
54
+ when String, Symbol, Integer, TrueClass, FalseClass then variable
55
+ when Array, Hash then marshal_clone(variable)
56
+ else
57
+ raise
58
+ end
59
+ end)
60
+ end
61
+ obj
62
+ end
63
+
64
+ def passed_directives
65
+ []
66
+ end
67
+
68
+ def ref_variables
69
+ [:@dapp]
70
+ end
71
+
72
+ def marshal_dump
73
+ instance_variables
74
+ .reject {|variable| ref_variables.include? variable}
75
+ .map {|variable| [variable, instance_variable_get(variable)]}
76
+ end
77
+
78
+ def marshal_load(variable_values)
79
+ variable_values.each do |variable, value|
80
+ instance_variable_set(variable, value)
81
+ end
82
+
83
+ self
84
+ end
85
+
86
+ def _clone
87
+ marshal_clone(self).tap do |obj|
88
+ _set_ref_variables_to(obj)
89
+ end
90
+ end
91
+
92
+ def _clone_to(obj)
93
+ obj.marshal_load(marshal_dump)
94
+ _set_ref_variables_to(obj)
95
+ end
96
+
97
+ def _set_ref_variables_to(obj)
98
+ ref_variables.each do |ref_variable|
99
+ obj.instance_variable_set(ref_variable, instance_variable_get(ref_variable))
100
+ end
101
+ end
102
+
103
+ def marshal_clone(obj)
104
+ Marshal.load(Marshal.dump(obj))
18
105
  end
19
106
  end
20
107
  end