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
@@ -0,0 +1,93 @@
1
+ module Dapp
2
+ module Deployment
3
+ class Secret
4
+ attr_reader :key
5
+
6
+ def initialize(key)
7
+ self.class._validate_key!(key)
8
+ @key = key
9
+ end
10
+
11
+ def generate(value)
12
+ cipher = self.class._openssl_cipher
13
+ cipher.encrypt
14
+ cipher.key = self.class._hex_to_binary key
15
+ iv = cipher.random_iv
16
+
17
+ iv_size_prefix = [iv.bytesize].pack('S')
18
+ encrypted = cipher.update(value.to_s) + cipher.final
19
+
20
+ self.class._binary_to_hex "#{iv_size_prefix}#{iv}#{encrypted}"
21
+ end
22
+
23
+ def extract(hexdata)
24
+ data = self.class._hex_to_binary hexdata.to_s
25
+
26
+ iv_size = data.unpack('S').first
27
+ data = data.byteslice(2..-1)
28
+ raise ExtractionError, code: :bad_data, data: {data: hexdata} unless data
29
+
30
+ iv = data.byteslice(0, iv_size)
31
+ data = data.byteslice(iv_size..-1)
32
+ raise ExtractionError, code: :bad_data, data: {data: hexdata} unless data
33
+
34
+ decipher = self.class._openssl_cipher
35
+ decipher.decrypt
36
+ decipher.key = self.class._hex_to_binary(key)
37
+
38
+ begin
39
+ decipher.iv = iv
40
+ rescue OpenSSL::Cipher::CipherError
41
+ raise ExtractionError, code: :bad_data, data: {data: hexdata}
42
+ end
43
+
44
+ begin
45
+ value = decipher.update(data) + decipher.final
46
+ rescue OpenSSL::Cipher::CipherError
47
+ raise ExtractionError, code: :bad_data, data: {data: hexdata}
48
+ end
49
+ value.force_encoding('utf-8')
50
+ end
51
+
52
+ class << self
53
+ def generate_key
54
+ _binary_to_hex _openssl_cipher.random_key
55
+ end
56
+
57
+ def _openssl_cipher
58
+ OpenSSL::Cipher::AES.new(128, :CBC)
59
+ end
60
+
61
+ def _hex_to_binary(key)
62
+ [key].pack('H*')
63
+ end
64
+
65
+ def _binary_to_hex(key)
66
+ key.unpack('H*').first
67
+ end
68
+
69
+ def _validate_key!(key)
70
+ # Требуется 128 битный ключ — это 16 байт.
71
+ # Ключ закодирован в hex кодировке для пользователя.
72
+ # 2 hex символа на 1 байт в hex кодировке.
73
+ # Поэтому требуется длина ключа в hex кодировке в 32 символа.
74
+ if key.bytesize < 32
75
+ raise InvalidKeyError, code: :key_length_too_short, data: {required_size: 32}
76
+ end
77
+ end
78
+ end
79
+
80
+ class Error < ::Dapp::Deployment::Error::Base
81
+ def initialize(**net_status)
82
+ super(net_status.merge(context: :secret))
83
+ end
84
+ end
85
+
86
+ class InvalidKeyError < Error
87
+ end
88
+
89
+ class ExtractionError < Error
90
+ end
91
+ end
92
+ end
93
+ end
@@ -5,7 +5,7 @@ module Dapp
5
5
  end
6
6
 
7
7
  def stage_should_be_introspected?(name)
8
- dapp.cli_options[:introspect_artifact_stage] == name
8
+ dapp.options[:introspect_artifact_stage] == name
9
9
  end
10
10
 
11
11
  def artifact?
@@ -30,32 +30,44 @@ module Dapp
30
30
 
31
31
  # rubocop:disable Metrics/ParameterLists
32
32
  def safe_cp(from, to, owner, group, include_paths = [], exclude_paths = [])
33
- credentials = ''
34
- credentials += "-o #{owner} " if owner
35
- credentials += "-g #{group} " if group
36
- excludes = find_command_excludes(from, exclude_paths).join(' ')
37
-
38
- copy_files = proc do |from_, path_ = ''|
39
- "if [[ -d #{File.join(from_, path_)} ]] || [[ -f #{File.join(from_, path_)} ]]; then " \
40
- "#{dimg.dapp.find_bin} #{File.join(from_, path_)} #{excludes} -type f -exec " \
41
- "#{dimg.dapp.bash_bin} -ec '#{dimg.dapp.install_bin} -D #{credentials} \"{}\" " \
42
- "\"#{File.join(to, '$(echo "{}" | ' \
43
- "#{dimg.dapp.sed_bin} -e \"s/^#{from_.gsub('/', '\\/')}\\///g\")")}\"' \\; ;" \
44
- 'fi'
45
- end
33
+ ''.tap do |cmd|
34
+ cmd << dimg.dapp.rsync_bin
35
+ cmd << ' --archive --links'
36
+ cmd << " --chown=#{owner}:#{group}" if owner or group
46
37
 
47
- commands = []
48
- commands << [dimg.dapp.install_bin, credentials, '-d', to].join(' ')
49
- commands.concat(include_paths.empty? ? Array(copy_files.call(from)) : include_paths.map { |path| copy_files.call(from, path) })
50
- commands << "#{dimg.dapp.find_bin} #{to} -type d -exec " \
51
- "#{dimg.dapp.bash_bin} -ec '#{dimg.dapp.install_bin} -d #{credentials} {}' \\;"
52
- commands.join(' && ')
53
- end
54
- # rubocop:enable Metrics/ParameterLists
38
+ if include_paths.any?
39
+ # Если указали include_paths это означает, что надо копировать
40
+ # только указанные пути. Поэтому exclude_paths в приоритете, т.к. в данном режиме
41
+ # exclude_paths может относится только к путям, указанным в include_paths.
42
+ # При этом случай, когда в include_paths указали более специальный путь, чем в exclude_paths,
43
+ # будет обрабатываться в пользу exclude, этот путь не скопируется.
44
+ exclude_paths.each do |p|
45
+ cmd << " --filter='-/ #{File.join(from, p)}'"
46
+ end
47
+
48
+ include_paths.each do |p|
49
+ # * На данный момент не знаем директорию или файл имел в виду пользователь,
50
+ # поэтому подставляем фильтры для обоих возможных случаев.
51
+ # * Автоматом подставляем паттерн ** для включения файлов, содержащихся в
52
+ # директории, которую пользователь указал в include_paths.
53
+ cmd << " --filter='+/ #{File.join(from, p)}'"
54
+ cmd << " --filter='+/ #{File.join(from, p, '**')}'"
55
+ end
55
56
 
56
- def find_command_excludes(from, exclude_paths)
57
- exclude_paths.map { |path| "-not \\( -path #{File.join(from, path)} -prune \\)" }
57
+ # Все что не подошло по include — исключается
58
+ cmd << " --filter='-/ #{File.join(from, '**')}'"
59
+ else
60
+ exclude_paths.each do |p|
61
+ cmd << " --filter='-/ #{File.join(from, p)}'"
62
+ end
63
+ end
64
+
65
+ # Слэш после from — это инструкция rsync'у для копирования
66
+ # содержимого директории from, а не самой директории.
67
+ cmd << " #{from}/ #{to}"
68
+ end
58
69
  end
70
+ # rubocop:enable Metrics/ParameterLists
59
71
  end # ArtifactDefault
60
72
  end # Stage
61
73
  end # Build
@@ -168,7 +168,7 @@ module Dapp
168
168
  end
169
169
 
170
170
  def default_git_artifacts_dependencies(git_artifacts)
171
- git_artifacts.map { |git_artifact| git_artifact.stage_dependencies_checksums(self) }
171
+ git_artifacts.map { |git_artifact| git_artifact.stage_dependencies_checksum(self) }
172
172
  end
173
173
 
174
174
  def dependencies
@@ -3,8 +3,6 @@ module Dapp
3
3
  module Build
4
4
  module Stage
5
5
  class BeforeSetup < Base
6
- include Mod::GitArtifactsDependencies
7
-
8
6
  def initialize(dimg, next_stage)
9
7
  @prev_stage = AfterInstallArtifact.new(dimg, self)
10
8
  super
@@ -3,8 +3,6 @@ module Dapp
3
3
  module Build
4
4
  module Stage
5
5
  class BuildArtifact < Base
6
- include Mod::GitArtifactsDependencies
7
-
8
6
  def initialize(dimg)
9
7
  @prev_stage = GAArtifactPatch.new(dimg, self)
10
8
  @dimg = dimg
@@ -15,12 +15,12 @@ module Dapp
15
15
  def dependencies
16
16
  [].tap do |dependencies|
17
17
  dependencies << commit_list
18
- dependencies << dimg.local_git_artifacts.map { |git_artifact| git_artifact.dev_patch_hash(self) } if dimg.dapp.dev_mode?
18
+ dependencies << dimg.local_git_artifacts.map { |git_artifact| git_artifact.dev_patch_hash(self) } if dimg.dev_mode?
19
19
  end
20
20
  end
21
21
 
22
22
  def prepare_local_git_artifacts_command
23
- return super unless dimg.dapp.dev_mode?
23
+ return super unless dimg.dev_mode?
24
24
  dimg.local_git_artifacts.each { |git_artifact| image.add_command git_artifact.apply_dev_patch_command(self) }
25
25
  end
26
26
 
@@ -5,7 +5,6 @@ module Dapp
5
5
  module Install
6
6
  class Install < Base
7
7
  include Mod::Group
8
- include Mod::GitArtifactsDependencies
9
8
 
10
9
  def initialize(dimg, next_stage)
11
10
  @prev_stage = GAPreInstallPatch.new(dimg, self)
@@ -5,7 +5,6 @@ module Dapp
5
5
  module Setup
6
6
  class Setup < Base
7
7
  include Mod::Group
8
- include Mod::GitArtifactsDependencies
9
8
 
10
9
  def initialize(dimg, next_stage)
11
10
  @prev_stage = GAPreSetupPatch.new(dimg, self)
@@ -1 +1 @@
1
- ::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI)
1
+ ::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI::Command)
@@ -0,0 +1,14 @@
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Base < ::Dapp::CLI::Command::Base
4
+ def run(argv = ARGV)
5
+ self.class.parse_options(self, argv)
6
+ ::Dapp::Dapp.new(options: cli_options(dimgs_patterns: cli_arguments)).public_send(run_method)
7
+ end
8
+
9
+ def run_method
10
+ class_to_lowercase
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,10 +1,9 @@
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
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'].freeze
6
5
 
7
- banner <<BANNER.freeze
6
+ banner <<BANNER.freeze
8
7
  Usage: dapp dimg [options] sub-command [sub-command options]
9
8
 
10
9
  Available subcommands: (for details, dapp dimg SUB-COMMAND --help)
@@ -24,7 +23,6 @@ dapp dimg build-context
24
23
 
25
24
  Options:
26
25
  BANNER
27
- end
28
26
  end
29
27
  end
30
28
  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 Bp < Push
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -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 Build < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -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 BuildContext < ::Dapp::CLI
5
5
  SUBCOMMANDS = %w(import export).freeze
6
6
 
@@ -1,7 +1,7 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class BuildContext
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class BuildContext < ::Dapp::CLI
5
5
  class Export < Base
6
6
  banner <<BANNER.freeze
7
7
  Usage:
@@ -1,7 +1,7 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class BuildContext
1
+ module Dapp::Dimg::CLI
2
+ module Command
3
+ class Dimg < ::Dapp::CLI
4
+ class BuildContext < ::Dapp::CLI
5
5
  class Import < Export
6
6
  banner <<BANNER.freeze
7
7
  Usage:
@@ -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 Cleanup < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -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:
@@ -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
@@ -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 Push < Base
5
5
  banner <<BANNER.freeze
6
6
  Usage:
@@ -52,8 +52,8 @@ BANNER
52
52
 
53
53
  def run(argv = ARGV)
54
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)
55
+ repo = self.class.required_argument(self, 'repo')
56
+ ::Dapp::Dapp.new(options: cli_options(dimgs_patterns: cli_arguments, repo: repo)).public_send(class_to_lowercase)
57
57
  end
58
58
  end
59
59
  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:
@@ -19,7 +19,7 @@ BANNER
19
19
  default: nil,
20
20
  proc: ->(v) { composite_options(:ssh_key) << v }
21
21
 
22
- def read_cli_options(args)
22
+ def read_options(args)
23
23
  self.class.cli_wrapper(self) do
24
24
  args.each_with_index do |arg, i|
25
25
  next if arg == '--'
@@ -31,7 +31,7 @@ BANNER
31
31
  cli_option << args.slice!(i)
32
32
  end
33
33
  parse_options(cli_option)
34
- return read_cli_options(args)
34
+ return read_options(args)
35
35
  end
36
36
  end
37
37
  end
@@ -46,12 +46,12 @@ BANNER
46
46
  end
47
47
 
48
48
  def run(argv = ARGV)
49
- filtered_args = read_cli_options(argv)
50
- pattern = filtered_args.any? && !filtered_args.first.start_with?('-') ? [filtered_args.shift] : []
49
+ filtered_args = read_options(argv)
50
+ patterns = filtered_args.any? && !filtered_args.first.start_with?('-') ? [filtered_args.shift] : []
51
51
  index = filtered_args.index('--') || filtered_args.count
52
52
  docker_options = index.nonzero? ? filtered_args.slice(0..index - 1) : []
53
53
  command = filtered_args.slice(index + 1..-1) || []
54
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: pattern).run(docker_options, command)
54
+ ::Dapp::Dapp.new(options: cli_options(dimgs_patterns: patterns)).run(docker_options, command)
55
55
  end
56
56
  end
57
57
  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