eac_tools 0.103.1 → 0.104.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 (527) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +32 -33
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +28 -0
  5. data/sub/avm/lib/avm/application_scms/base.rb +37 -0
  6. data/sub/avm/lib/avm/application_scms.rb +6 -0
  7. data/sub/avm/lib/avm/application_stereotypes/base.rb +29 -0
  8. data/sub/avm/lib/avm/application_stereotypes.rb +6 -0
  9. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +22 -0
  10. data/sub/avm/lib/avm/applications/base/local_instance.rb +28 -0
  11. data/sub/avm/lib/avm/applications/base/local_source.rb +33 -0
  12. data/sub/avm/lib/avm/applications/base/naming.rb +26 -0
  13. data/sub/avm/lib/avm/applications/base/organization.rb +27 -0
  14. data/sub/avm/lib/avm/applications/base/publishing.rb +39 -0
  15. data/sub/avm/lib/avm/applications/base/scm.rb +24 -0
  16. data/sub/avm/lib/avm/applications/base/stereotype.rb +29 -0
  17. data/sub/avm/lib/avm/applications/base.rb +34 -0
  18. data/sub/avm/lib/avm/applications.rb +6 -0
  19. data/sub/avm/lib/avm/data/callbacks.rb +36 -0
  20. data/sub/avm/lib/avm/data/clearer.rb +17 -0
  21. data/sub/avm/lib/avm/data/dumper.rb +137 -0
  22. data/sub/avm/lib/avm/data/loader.rb +23 -0
  23. data/sub/avm/lib/avm/data/package/base_performer.rb +36 -0
  24. data/sub/avm/lib/avm/data/package/build_directory.rb +25 -0
  25. data/sub/avm/lib/avm/data/package/clear.rb +19 -0
  26. data/sub/avm/lib/avm/data/package/dump.rb +42 -0
  27. data/sub/avm/lib/avm/data/package/load.rb +33 -0
  28. data/sub/avm/lib/avm/data/package.rb +64 -0
  29. data/sub/avm/lib/avm/data/performer.rb +45 -0
  30. data/sub/avm/lib/avm/data/rotate.rb +106 -0
  31. data/sub/avm/lib/avm/data/unit.rb +44 -0
  32. data/sub/avm/lib/avm/data/unit_with_commands.rb +48 -0
  33. data/sub/avm/lib/avm/docker/container.rb +49 -0
  34. data/sub/avm/lib/avm/docker/image.rb +73 -0
  35. data/sub/avm/lib/avm/docker/runner.rb +131 -0
  36. data/sub/avm/lib/avm/docker.rb +6 -0
  37. data/sub/avm/lib/avm/entries/auto_values/entry.rb +38 -0
  38. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +21 -0
  39. data/sub/avm/lib/avm/entries/auto_values.rb +8 -0
  40. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +44 -0
  41. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +26 -0
  42. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +37 -0
  43. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +29 -0
  44. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +42 -0
  45. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +40 -0
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +59 -0
  47. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +16 -0
  48. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +24 -0
  49. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +23 -0
  50. data/sub/avm/lib/avm/entries/base.rb +55 -0
  51. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +21 -0
  52. data/sub/avm/lib/avm/entries/entry.rb +71 -0
  53. data/sub/avm/lib/avm/entries/jobs/base.rb +60 -0
  54. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +48 -0
  55. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +13 -0
  56. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +13 -0
  57. data/sub/avm/lib/avm/entries/jobs.rb +8 -0
  58. data/sub/avm/lib/avm/entries/keys_constants_set.rb +41 -0
  59. data/sub/avm/lib/avm/entries/uri_builder.rb +87 -0
  60. data/sub/avm/lib/avm/entries.rb +6 -0
  61. data/sub/avm/lib/avm/executables.rb +21 -0
  62. data/sub/avm/lib/avm/file_formats/base.rb +34 -0
  63. data/sub/avm/lib/avm/file_formats/file_result.rb +11 -0
  64. data/sub/avm/lib/avm/file_formats/search_formatter.rb +83 -0
  65. data/sub/avm/lib/avm/file_formats/unknown.rb +15 -0
  66. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +70 -0
  67. data/sub/avm/lib/avm/file_formats.rb +6 -0
  68. data/sub/avm/lib/avm/files/appendable/file_content.rb +30 -0
  69. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +29 -0
  70. data/sub/avm/lib/avm/files/appendable/resource_base.rb +19 -0
  71. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +30 -0
  72. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +40 -0
  73. data/sub/avm/lib/avm/files/appendable.rb +55 -0
  74. data/sub/avm/lib/avm/files/appender.rb +9 -0
  75. data/sub/avm/lib/avm/files/deploy.rb +72 -0
  76. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +24 -0
  77. data/sub/avm/lib/avm/files/text_replacer.rb +32 -0
  78. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +28 -0
  79. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +60 -0
  80. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +31 -0
  81. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +16 -0
  82. data/sub/avm/lib/avm/instances/base/auto_values.rb +12 -0
  83. data/sub/avm/lib/avm/instances/base/dockerizable.rb +43 -0
  84. data/sub/avm/lib/avm/instances/base/entry_keys.rb +25 -0
  85. data/sub/avm/lib/avm/instances/base/install.rb +28 -0
  86. data/sub/avm/lib/avm/instances/base/processes.rb +25 -0
  87. data/sub/avm/lib/avm/instances/base/production.rb +33 -0
  88. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +25 -0
  89. data/sub/avm/lib/avm/instances/base/web.rb +15 -0
  90. data/sub/avm/lib/avm/instances/base.rb +70 -0
  91. data/sub/avm/lib/avm/instances/data/files_unit.rb +57 -0
  92. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +10 -0
  93. data/sub/avm/lib/avm/instances/data/package.rb +25 -0
  94. data/sub/avm/lib/avm/instances/data/unit.rb +36 -0
  95. data/sub/avm/lib/avm/instances/data.rb +8 -0
  96. data/sub/avm/lib/avm/instances/docker_image.rb +13 -0
  97. data/sub/avm/lib/avm/instances/entry_keys.rb +39 -0
  98. data/sub/avm/lib/avm/instances/ids.rb +28 -0
  99. data/sub/avm/lib/avm/instances/process.rb +29 -0
  100. data/sub/avm/lib/avm/instances/runner.rb +36 -0
  101. data/sub/avm/lib/avm/instances.rb +6 -0
  102. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +44 -0
  103. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +51 -0
  104. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +53 -0
  105. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +34 -0
  106. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +32 -0
  107. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +74 -0
  108. data/sub/avm/lib/avm/launcher/context/settings.rb +51 -0
  109. data/sub/avm/lib/avm/launcher/context.rb +85 -0
  110. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  111. data/sub/avm/lib/avm/launcher/errors/non_project.rb +13 -0
  112. data/sub/avm/lib/avm/launcher/errors.rb +8 -0
  113. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +43 -0
  114. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +53 -0
  115. data/sub/avm/lib/avm/launcher/instances/base.rb +77 -0
  116. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb → avm/lib/avm/launcher/instances/error.rb} +2 -2
  117. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +43 -0
  118. data/sub/avm/lib/avm/launcher/instances/settings.rb +24 -0
  119. data/sub/avm/lib/avm/launcher/instances.rb +8 -0
  120. data/sub/avm/lib/avm/launcher/paths/logical.rb +76 -0
  121. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  122. data/sub/avm/lib/avm/launcher/paths.rb +8 -0
  123. data/sub/avm/lib/avm/launcher/project.rb +15 -0
  124. data/sub/avm/lib/avm/launcher/publish/base.rb +44 -0
  125. data/sub/avm/lib/avm/launcher/publish/check_result.rb +64 -0
  126. data/sub/avm/lib/avm/launcher/publish.rb +8 -0
  127. data/sub/avm/lib/avm/launcher/stereotype.rb +63 -0
  128. data/sub/avm/lib/avm/launcher.rb +6 -0
  129. data/sub/avm/lib/avm/launcher_stereotypes.rb +6 -0
  130. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +46 -0
  131. data/sub/avm/lib/avm/path_string.rb +27 -0
  132. data/sub/avm/lib/avm/registry/application_scms.rb +13 -0
  133. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +45 -0
  134. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +30 -0
  135. data/sub/avm/lib/avm/registry/application_stereotypes.rb +42 -0
  136. data/sub/avm/lib/avm/registry/applications.rb +35 -0
  137. data/sub/avm/lib/avm/registry/base.rb +26 -0
  138. data/sub/avm/lib/avm/registry/config_objects.rb +15 -0
  139. data/sub/avm/lib/avm/registry/detection_error.rb +8 -0
  140. data/sub/avm/lib/avm/registry/file_formats.rb +17 -0
  141. data/sub/avm/lib/avm/registry/from_gems.rb +67 -0
  142. data/sub/avm/lib/avm/registry/instances.rb +13 -0
  143. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +8 -0
  144. data/sub/avm/lib/avm/registry/runners.rb +8 -0
  145. data/sub/avm/lib/avm/registry/scms.rb +8 -0
  146. data/sub/avm/lib/avm/registry/source_generators.rb +14 -0
  147. data/sub/avm/lib/avm/registry/sources.rb +38 -0
  148. data/sub/avm/lib/avm/registry/with_path/cache.rb +28 -0
  149. data/sub/avm/lib/avm/registry/with_path.rb +46 -0
  150. data/sub/avm/lib/avm/registry.rb +32 -0
  151. data/sub/avm/lib/avm/result.rb +80 -0
  152. data/sub/avm/lib/avm/rspec/launcher_controller.rb +95 -0
  153. data/sub/avm/lib/avm/rspec/setup/launcher.rb +18 -0
  154. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +20 -0
  155. data/sub/avm/lib/avm/rspec/setup.rb +32 -0
  156. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +13 -0
  157. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +28 -0
  158. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +23 -0
  159. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +19 -0
  160. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +9 -0
  161. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +12 -0
  162. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +9 -0
  163. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +13 -0
  164. data/sub/{eac_cli/lib/eac_cli → avm/lib/avm}/rspec.rb +1 -2
  165. data/sub/avm/lib/avm/runner_with/file_replacer.rb +30 -0
  166. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +101 -0
  167. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +54 -0
  168. data/sub/{eac_cli/lib/eac_cli → avm/lib/avm}/runner_with.rb +3 -1
  169. data/sub/avm/lib/avm/runners/base.rb +27 -0
  170. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +47 -0
  171. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +79 -0
  172. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +37 -0
  173. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +17 -0
  174. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +38 -0
  175. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +21 -0
  176. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +29 -0
  177. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +19 -0
  178. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +34 -0
  179. data/sub/avm/lib/avm/scms/auto_commit.rb +8 -0
  180. data/sub/avm/lib/avm/scms/base/branches.rb +20 -0
  181. data/sub/avm/lib/avm/scms/base/commits.rb +32 -0
  182. data/sub/avm/lib/avm/scms/base/milestones.rb +19 -0
  183. data/sub/avm/lib/avm/scms/base/remotes.rb +20 -0
  184. data/sub/avm/lib/avm/scms/base.rb +59 -0
  185. data/sub/avm/lib/avm/scms/branch.rb +24 -0
  186. data/sub/avm/lib/avm/scms/changed_file.rb +46 -0
  187. data/sub/avm/lib/avm/scms/commit.rb +64 -0
  188. data/sub/avm/lib/avm/scms/commit_info.rb +37 -0
  189. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  190. data/sub/avm/lib/avm/scms/interval.rb +16 -0
  191. data/sub/avm/lib/avm/scms/null/commit.rb +11 -0
  192. data/sub/avm/lib/avm/scms/null.rb +16 -0
  193. data/sub/avm/lib/avm/scms/remote.rb +9 -0
  194. data/sub/avm/lib/avm/scms.rb +6 -0
  195. data/sub/avm/lib/avm/self/docker_image.rb +11 -0
  196. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  197. data/sub/avm/lib/avm/self/instance.rb +27 -0
  198. data/sub/avm/lib/avm/source_generators/base.rb +69 -0
  199. data/sub/avm/lib/avm/source_generators/option.rb +11 -0
  200. data/sub/avm/lib/avm/source_generators/option_list.rb +29 -0
  201. data/sub/avm/lib/avm/source_generators/runner.rb +57 -0
  202. data/sub/avm/lib/avm/source_generators.rb +6 -0
  203. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +29 -0
  204. data/sub/avm/lib/avm/sources/auto_commit.rb +8 -0
  205. data/sub/avm/lib/avm/sources/base/application.rb +34 -0
  206. data/sub/avm/lib/avm/sources/base/configuration.rb +91 -0
  207. data/sub/avm/lib/avm/sources/base/instance.rb +13 -0
  208. data/sub/avm/lib/avm/sources/base/locale.rb +30 -0
  209. data/sub/avm/lib/avm/sources/base/organizational.rb +30 -0
  210. data/sub/avm/lib/avm/sources/base/parent.rb +26 -0
  211. data/sub/avm/lib/avm/sources/base/stereotype.rb +16 -0
  212. data/sub/avm/lib/avm/sources/base/sub/remove.rb +36 -0
  213. data/sub/avm/lib/avm/sources/base/sub.rb +23 -0
  214. data/sub/avm/lib/avm/sources/base/subs.rb +63 -0
  215. data/sub/avm/lib/avm/sources/base/subs_paths.rb +30 -0
  216. data/sub/avm/lib/avm/sources/base/testing.rb +67 -0
  217. data/sub/avm/lib/avm/sources/base/update.rb +37 -0
  218. data/sub/avm/lib/avm/sources/base/update_sub.rb +55 -0
  219. data/sub/avm/lib/avm/sources/base/update_subs.rb +17 -0
  220. data/sub/avm/lib/avm/sources/base/version_bump.rb +26 -0
  221. data/sub/avm/lib/avm/sources/base.rb +56 -0
  222. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  223. data/sub/avm/lib/avm/sources/configuration.rb +59 -0
  224. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  225. data/sub/avm/lib/avm/sources/issues.rb +8 -0
  226. data/sub/avm/lib/avm/sources/runner.rb +40 -0
  227. data/sub/avm/lib/avm/sources/tests/builder.rb +91 -0
  228. data/sub/avm/lib/avm/sources/tests/performer.rb +32 -0
  229. data/sub/avm/lib/avm/sources/tests/result.rb +15 -0
  230. data/sub/avm/lib/avm/sources/tests/single.rb +71 -0
  231. data/sub/avm/lib/avm/sources/tests.rb +8 -0
  232. data/sub/avm/lib/avm/sources/update_error.rb +8 -0
  233. data/sub/avm/lib/avm/sources.rb +6 -0
  234. data/sub/avm/lib/avm/sync.rb +90 -0
  235. data/sub/{eac_cli/lib/eac_cli → avm/lib/avm}/version.rb +2 -2
  236. data/sub/avm/lib/avm/version_number.rb +45 -0
  237. data/sub/avm/lib/avm/with/application_stereotype.rb +29 -0
  238. data/sub/avm/lib/avm/with/extra_subcommands.rb +43 -0
  239. data/sub/avm/lib/avm.rb +12 -0
  240. data/sub/avm/locale/en.yml +6 -0
  241. data/sub/avm/locale/pt-BR.yml +6 -0
  242. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +29 -0
  243. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +12 -0
  244. data/sub/avm/spec/lib/avm/applications/base_spec.rb +21 -0
  245. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +3 -0
  246. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +9 -0
  247. data/sub/avm/spec/lib/avm/instances/base_spec.rb +104 -0
  248. data/sub/avm/spec/lib/avm/instances/base_spec_files/config.yml +50 -0
  249. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +98 -0
  250. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +5 -0
  251. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +9 -0
  252. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +39 -0
  253. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +5 -0
  254. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +5 -0
  255. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +26 -0
  256. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +20 -0
  257. data/sub/avm/spec/lib/avm/scms/base_spec.rb +5 -0
  258. data/sub/avm/spec/lib/avm/sources/base_spec.rb +5 -0
  259. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +7 -0
  260. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +6 -0
  261. data/sub/avm/spec/spec_helper.rb +8 -0
  262. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +29 -0
  263. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools/version.rb +7 -0
  264. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  265. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  266. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  267. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +16 -0
  268. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +1 -0
  269. data/sub/avm/template/avm/self/docker_image/Dockerfile +17 -0
  270. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +12 -0
  271. data/sub/avm-git/avm-git.gemspec +25 -0
  272. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +44 -0
  273. data/sub/avm-git/lib/avm/git/application_scms/base.rb +18 -0
  274. data/sub/{eac_cli/lib/eac_cli/runner/context_responders.rb → avm-git/lib/avm/git/application_scms.rb} +3 -3
  275. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +29 -0
  276. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  277. data/sub/avm-git/lib/avm/git/commit/file.rb +42 -0
  278. data/sub/avm-git/lib/avm/git/commit.rb +57 -0
  279. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +40 -0
  280. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +20 -0
  281. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +59 -0
  282. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +37 -0
  283. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  284. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  285. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +34 -0
  286. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +21 -0
  287. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +36 -0
  288. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +54 -0
  289. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  290. data/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  291. data/sub/{eac_cli/lib/eac_cli/patches.rb → avm-git/lib/avm/git/issue.rb} +7 -0
  292. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  293. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +21 -0
  294. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +37 -0
  295. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +42 -0
  296. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +54 -0
  297. data/sub/avm-git/lib/avm/git/launcher/base.rb +81 -0
  298. data/sub/avm-git/lib/avm/git/launcher/error.rb +13 -0
  299. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +36 -0
  300. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +128 -0
  301. data/sub/avm-git/lib/avm/git/launcher/remote.rb +53 -0
  302. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +36 -0
  303. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +63 -0
  304. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +16 -0
  305. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +13 -0
  306. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +25 -0
  307. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +22 -0
  308. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +29 -0
  309. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +82 -0
  310. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +32 -0
  311. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +16 -0
  312. data/sub/avm-git/lib/avm/git/launcher_stereotypes.rb +9 -0
  313. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +32 -0
  314. data/sub/avm-git/lib/avm/git/organize/repository.rb +74 -0
  315. data/sub/avm-git/lib/avm/git/organize.rb +9 -0
  316. data/sub/avm-git/lib/avm/git/revision_test.rb +102 -0
  317. data/sub/avm-git/lib/avm/git/runners/base/commit.rb +96 -0
  318. data/sub/avm-git/lib/avm/git/runners/base/deploy.rb +108 -0
  319. data/sub/avm-git/lib/avm/git/runners/base/dirty_files.rb +42 -0
  320. data/sub/avm-git/lib/avm/git/runners/base/organize.rb +72 -0
  321. data/sub/avm-git/lib/avm/git/runners/base/revisions_test.rb +63 -0
  322. data/sub/avm-git/lib/avm/git/runners/base/subrepo/check.rb +45 -0
  323. data/sub/avm-git/lib/avm/git/runners/base/subrepo/clone.rb +80 -0
  324. data/sub/avm-git/lib/avm/git/runners/base/subrepo/fix.rb +69 -0
  325. data/sub/avm-git/lib/avm/git/runners/base/subrepo.rb +17 -0
  326. data/sub/avm-git/lib/avm/git/runners/base.rb +40 -0
  327. data/sub/avm-git/lib/avm/git/runners.rb +9 -0
  328. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +28 -0
  329. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +17 -0
  330. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +34 -0
  331. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +25 -0
  332. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +21 -0
  333. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +38 -0
  334. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +24 -0
  335. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +64 -0
  336. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +32 -0
  337. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +44 -0
  338. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +28 -0
  339. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +18 -0
  340. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +18 -0
  341. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +29 -0
  342. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +54 -0
  343. data/sub/avm-git/lib/avm/git/scms/git.rb +46 -0
  344. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +19 -0
  345. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +23 -0
  346. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +23 -0
  347. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +30 -0
  348. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +33 -0
  349. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +29 -0
  350. data/sub/avm-git/lib/avm/git/scms/provider.rb +16 -0
  351. data/sub/avm-git/lib/avm/git/scms.rb +9 -0
  352. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +48 -0
  353. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +86 -0
  354. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +30 -0
  355. data/sub/avm-git/lib/avm/git/subrepo_check.rb +36 -0
  356. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +57 -0
  357. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  358. data/sub/avm-git/lib/avm/git/vendor.rb +9 -0
  359. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0 → avm-git/lib/avm/git}/version.rb +2 -2
  360. data/sub/avm-git/lib/avm/git.rb +16 -0
  361. data/sub/avm-git/locale/en.yml +6 -0
  362. data/sub/avm-git/locale/pt-BR.yml +6 -0
  363. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  364. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  365. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  366. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  367. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  368. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  369. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  370. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  371. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  372. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  373. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  374. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  375. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -0
  376. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec.rb +83 -0
  377. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_files/config.yml +5 -0
  378. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_settings.yml +6 -0
  379. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec.rb +53 -0
  380. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_files/config.yml +3 -0
  381. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_settings.yml +6 -0
  382. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec.rb +126 -0
  383. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append1/stub3.txt.template +1 -0
  384. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append2/stub4.txt +1 -0
  385. data/sub/avm-git/spec/lib/avm/git/scms/git/commit/deploy_spec.rb +92 -0
  386. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  387. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  388. data/sub/avm-git/spec/lib/avm/git/vendor/github_spec.rb +23 -0
  389. data/sub/{avm-eac_redmine_base0 → avm-git}/spec/spec_helper.rb +2 -3
  390. metadata +396 -163
  391. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -26
  392. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -10
  393. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -27
  394. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -18
  395. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -52
  396. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -43
  397. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -19
  398. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -17
  399. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -53
  400. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -16
  401. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -110
  402. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -31
  403. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -21
  404. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -17
  405. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -50
  406. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -15
  407. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -25
  408. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -68
  409. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -26
  410. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -22
  411. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -53
  412. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -32
  413. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -125
  414. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -61
  415. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -16
  416. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -16
  417. data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
  418. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
  419. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -22
  420. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
  421. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -26
  422. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
  423. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -45
  424. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
  425. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -37
  426. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
  427. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
  428. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
  429. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
  430. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +0 -52
  431. data/sub/eac_cli/eac_cli.gemspec +0 -23
  432. data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +0 -55
  433. data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +0 -26
  434. data/sub/eac_cli/lib/eac_cli/config/entry.rb +0 -55
  435. data/sub/eac_cli/lib/eac_cli/config.rb +0 -15
  436. data/sub/eac_cli/lib/eac_cli/core_ext.rb +0 -4
  437. data/sub/eac_cli/lib/eac_cli/default_runner.rb +0 -12
  438. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +0 -101
  439. data/sub/eac_cli/lib/eac_cli/definition/argument_option.rb +0 -19
  440. data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +0 -25
  441. data/sub/eac_cli/lib/eac_cli/definition/error.rb +0 -8
  442. data/sub/eac_cli/lib/eac_cli/definition/option/initialize_args_parser.rb +0 -48
  443. data/sub/eac_cli/lib/eac_cli/definition/option.rb +0 -70
  444. data/sub/eac_cli/lib/eac_cli/definition/option_or_positional.rb +0 -41
  445. data/sub/eac_cli/lib/eac_cli/definition/positional.rb +0 -50
  446. data/sub/eac_cli/lib/eac_cli/definition.rb +0 -104
  447. data/sub/eac_cli/lib/eac_cli/enum.rb +0 -42
  448. data/sub/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +0 -76
  449. data/sub/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +0 -14
  450. data/sub/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +0 -42
  451. data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +0 -23
  452. data/sub/eac_cli/lib/eac_cli/old_configs.rb +0 -31
  453. data/sub/eac_cli/lib/eac_cli/parser/alternative/any_options.rb +0 -17
  454. data/sub/eac_cli/lib/eac_cli/parser/alternative/argv.rb +0 -19
  455. data/sub/eac_cli/lib/eac_cli/parser/alternative/double_dash.rb +0 -24
  456. data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +0 -37
  457. data/sub/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +0 -29
  458. data/sub/eac_cli/lib/eac_cli/parser/alternative/options.rb +0 -29
  459. data/sub/eac_cli/lib/eac_cli/parser/alternative/positionals.rb +0 -30
  460. data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +0 -54
  461. data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +0 -99
  462. data/sub/eac_cli/lib/eac_cli/parser/collector.rb +0 -52
  463. data/sub/eac_cli/lib/eac_cli/parser/error.rb +0 -13
  464. data/sub/eac_cli/lib/eac_cli/parser.rb +0 -32
  465. data/sub/eac_cli/lib/eac_cli/patches/object/runner_with.rb +0 -22
  466. data/sub/eac_cli/lib/eac_cli/patches/object.rb +0 -5
  467. data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +0 -41
  468. data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +0 -34
  469. data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +0 -32
  470. data/sub/eac_cli/lib/eac_cli/runner/context.rb +0 -57
  471. data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +0 -22
  472. data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +0 -24
  473. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +0 -17
  474. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +0 -29
  475. data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +0 -41
  476. data/sub/eac_cli/lib/eac_cli/runner/exit.rb +0 -14
  477. data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +0 -35
  478. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +0 -45
  479. data/sub/eac_cli/lib/eac_cli/runner.rb +0 -47
  480. data/sub/eac_cli/lib/eac_cli/runner_with/confirmation/input_result.rb +0 -60
  481. data/sub/eac_cli/lib/eac_cli/runner_with/confirmation.rb +0 -65
  482. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +0 -61
  483. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +0 -79
  484. data/sub/eac_cli/lib/eac_cli/runner_with/help/layout.rb +0 -38
  485. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +0 -51
  486. data/sub/eac_cli/lib/eac_cli/runner_with/input.rb +0 -32
  487. data/sub/eac_cli/lib/eac_cli/runner_with/output.rb +0 -54
  488. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/asciidoc_formatter.rb +0 -70
  489. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/base_formatter.rb +0 -12
  490. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/csv_formatter.rb +0 -21
  491. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/yaml_formatter.rb +0 -16
  492. data/sub/eac_cli/lib/eac_cli/runner_with/output_item.rb +0 -47
  493. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/base_formatter.rb +0 -44
  494. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/csv_formatter.rb +0 -24
  495. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/tty_formatter.rb +0 -34
  496. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/yaml_formatter.rb +0 -21
  497. data/sub/eac_cli/lib/eac_cli/runner_with/output_list.rb +0 -39
  498. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +0 -10
  499. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +0 -124
  500. data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +0 -54
  501. data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +0 -11
  502. data/sub/eac_cli/lib/eac_cli/speaker/input_blocked.rb +0 -14
  503. data/sub/eac_cli/lib/eac_cli/speaker/input_requested.rb +0 -8
  504. data/sub/eac_cli/lib/eac_cli/speaker/list.rb +0 -84
  505. data/sub/eac_cli/lib/eac_cli/speaker/options.rb +0 -42
  506. data/sub/eac_cli/lib/eac_cli/speaker/request_from_list.rb +0 -40
  507. data/sub/eac_cli/lib/eac_cli/speaker.rb +0 -114
  508. data/sub/eac_cli/lib/eac_cli.rb +0 -14
  509. data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +0 -18
  510. data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +0 -14
  511. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative/subcommands_spec.rb +0 -58
  512. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +0 -89
  513. data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +0 -79
  514. data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +0 -129
  515. data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation/input_result_spec.rb +0 -36
  516. data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb +0 -42
  517. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb +0 -21
  518. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +0 -51
  519. data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_list_spec.rb +0 -57
  520. data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb +0 -81
  521. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +0 -99
  522. data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +0 -36
  523. data/sub/eac_cli/spec/spec_helper.rb +0 -4
  524. /data/sub/{eac_cli → avm}/Gemfile +0 -0
  525. /data/sub/{eac_cli → avm}/spec/rubocop_spec.rb +0 -0
  526. /data/sub/{avm-eac_redmine_base0 → avm-git}/Gemfile +0 -0
  527. /data/sub/{avm-eac_redmine_base0 → avm-git}/spec/rubocop_spec.rb +0 -0
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ enable_abstract_methods
7
+ enable_listable
8
+ enable_simple_cache
9
+ include ::Avm::Entries::Base
10
+
11
+ require_sub __FILE__, include_modules: true
12
+ include ::Avm::With::ExtraSubcommands
13
+ include ::Avm::With::ApplicationStereotype
14
+
15
+ lists.add_string :access, :local, :ssh
16
+
17
+ ID_PATTERN = /\A([a-z0-9]+(?:-[a-z0-9]+)*)_(.+)\z/.freeze
18
+
19
+ class << self
20
+ def by_id(id)
21
+ parsed_id = ::Avm::Instances::Ids.parse!(id)
22
+
23
+ new(::Avm::Applications::Base.new(parsed_id.application_id), parsed_id.instance_suffix)
24
+ end
25
+ end
26
+
27
+ common_constructor :application, :suffix do
28
+ self.suffix = suffix.to_s
29
+ end
30
+
31
+ # @return [Avm::Instances::Data::Package]
32
+ def data_package
33
+ @data_package ||= data_package_create
34
+ end
35
+
36
+ # @return [Avm::Instances::Data::Package]
37
+ def data_package_create
38
+ ::Avm::Instances::Data::Package.new(self)
39
+ end
40
+
41
+ # @return [String]
42
+ def id
43
+ ::Avm::Instances::Ids.build(application.id, suffix)
44
+ end
45
+
46
+ def to_s
47
+ id
48
+ end
49
+
50
+ def host_env_uncached
51
+ case install_scheme
52
+ when 'file' then ::EacRubyUtils::Envs.local
53
+ when 'ssh' then ::EacRubyUtils::Envs.ssh(install_url)
54
+ else raise("Unmapped access value: \"#{install_scheme}\"")
55
+ end
56
+ end
57
+
58
+ # @return [Boolean]
59
+ def local?
60
+ suffix == ::Avm::Applications::Base::LocalInstance::LOCAL_INSTANCE_SUFFIX
61
+ end
62
+
63
+ private
64
+
65
+ def source_instance_uncached
66
+ ::Avm::Instances::Base.by_id(source_instance_id)
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Data
6
+ class FilesUnit < ::Avm::Instances::Data::Unit
7
+ EXTENSION = '.tar.gz'
8
+
9
+ enable_listable
10
+ lists.add_symbol :option, :sudo_user
11
+
12
+ common_constructor :instance, :fs_path_subpath, :options, default: [{}],
13
+ super_args: -> { [instance] } do
14
+ self.fs_path_subpath = fs_path_subpath.to_pathname
15
+ self.options = self.class.lists.option.hash_keys_validate!(options)
16
+ end
17
+
18
+ # @return [Pathname]
19
+ def files_path
20
+ fs_path_subpath
21
+ .expand_path(instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH))
22
+ end
23
+
24
+ def dump_command
25
+ instance_command('tar', '-czf', '-', '-C', files_path, '.')
26
+ end
27
+
28
+ def load_command
29
+ instance_command('tar', '-xzf', '-', '-C', files_path)
30
+ end
31
+
32
+ def do_clear
33
+ instance_command('mkdir', '-p', files_path).execute!
34
+ instance_command('find', files_path, '-mindepth', 1, '-delete').execute!
35
+ end
36
+
37
+ # @return [Struct(:key, :subpath), nil]
38
+ def installation_files_data
39
+ return nil unless fs_path_subpath.relative?
40
+
41
+ ::Struct.new(:key, :subpath).new(fs_path_subpath.basename.to_path, fs_path_subpath)
42
+ end
43
+
44
+ # @return [EacRubyUtils::Envs::Command]
45
+ def instance_command(*args)
46
+ args = ['sudo', '-Hu', sudo_user] + args if sudo_user.present?
47
+ instance.host_env.command(*args).chdir('/')
48
+ end
49
+
50
+ # @return [String, nil]
51
+ def sudo_user
52
+ options[OPTION_SUDO_USER]
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Data
6
+ class LoadingDeniedError < ::RuntimeError
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Data
6
+ class Package < ::Avm::Data::Package
7
+ attr_reader :instance
8
+
9
+ def initialize(instance, options = {})
10
+ @instance = instance
11
+ super(options)
12
+ end
13
+
14
+ # @return [Pathname]
15
+ def data_default_dump_path
16
+ instance.data_default_dump_path.to_pathname
17
+ end
18
+
19
+ def load(...)
20
+ instance.on_disabled_processes { super }
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Data
6
+ class Unit < ::Avm::Data::UnitWithCommands
7
+ common_constructor :instance
8
+
9
+ # @return [void]
10
+ # @raise Avm::Instances::Data::Unit
11
+ def check_load_permission!
12
+ return if instance.data_allow_loading
13
+
14
+ raise ::Avm::Instances::Data::LoadingDeniedError, "Instance: #{instance}"
15
+ end
16
+
17
+ # @return [Pathname]
18
+ def data_default_dump_path
19
+ instance.data_default_dump_path.to_pathname.basename_sub('.*') do |b|
20
+ "#{b}_#{identifier}#{dump_path_extension}"
21
+ end
22
+ end
23
+
24
+ # @return [String]
25
+ def identifier
26
+ instance.data_package.units.key(self) || raise("No identifier found for #{self}")
27
+ end
28
+
29
+ def load(...)
30
+ check_load_permission!
31
+ instance.on_disabled_processes { super }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Data
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class DockerImage < ::Avm::Docker::Image
6
+ attr_accessor :instance
7
+
8
+ def stereotype_tag
9
+ instance.id
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module EntryKeys
6
+ URI_FIELDS = ::Avm::Entries::UriBuilder::ENTRIES_FIELDS + %w[url]
7
+
8
+ class << self
9
+ def all
10
+ all_keys.to_a
11
+ end
12
+
13
+ def keys_consts_set(prefix, suffixes)
14
+ all_keys.merge(::Avm::Entries::KeysConstantsSet.new(self, prefix, suffixes).result)
15
+ end
16
+
17
+ private
18
+
19
+ def all_keys
20
+ @all_keys ||= ::Set.new
21
+ end
22
+ end
23
+
24
+ {
25
+ '' => %w[name source_instance_id],
26
+ admin: URI_FIELDS + %w[api_key],
27
+ data: %w[allow_loading default_dump_path],
28
+ database: URI_FIELDS + %w[id limit name system timeout extra],
29
+ docker: %w[registry],
30
+ install: URI_FIELDS + %w[id data_path email groupname],
31
+ mailer: {
32
+ '' => %w[id from reply_to],
33
+ smtp: URI_FIELDS + %w[address domain authentication openssl_verify_mode starttls_auto tls]
34
+ },
35
+ web: URI_FIELDS
36
+ }.each { |prefix, suffixes| keys_consts_set(prefix, suffixes) }
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ module Ids
6
+ ID_PARTS_SEPARATOR = '_'
7
+ ID_PATTERN = /\A([a-z0-9]+(?:-[a-z0-9]+)*)_(.+)\z/.freeze
8
+ ID_PARSER = ID_PATTERN.to_parser do |m|
9
+ ::Struct.new(:application_id, :instance_suffix).new(m[1], m[2])
10
+ end
11
+
12
+ class << self
13
+ # @param application_id [String]
14
+ # @param instance_suffix [String]
15
+ # @return [String]
16
+ def build(application_id, instance_suffix)
17
+ [application_id, instance_suffix].join(ID_PARTS_SEPARATOR)
18
+ end
19
+
20
+ # @param id [String]
21
+ # @return [String]
22
+ def parse!(id) # rubocop:disable Rails/Delegate
23
+ ID_PARSER.parse!(id)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Process
6
+ class << self
7
+ # @return [Symbol]
8
+ def default_id
9
+ name.demodulize.underscore.to_sym
10
+ end
11
+ end
12
+
13
+ acts_as_abstract :available?, :disable, :enable, :enabled?
14
+ common_constructor :instance, :id, default: [nil] do
15
+ self.id ||= (id || self.class.default_id).to_sym
16
+ end
17
+
18
+ def on_disabled(&block)
19
+ previous_enabled = enabled?
20
+ begin
21
+ disable if previous_enabled
22
+ block.call
23
+ ensure
24
+ enable if previous_enabled
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Runner < ::Avm::Runners::Base
8
+ runner_with :help, :subcommands do
9
+ desc 'Utilities for a instance.'
10
+ pos_arg 'instance-id'
11
+ subcommands
12
+ end
13
+
14
+ delegate :class, to: :instance, prefix: true
15
+ for_context :instance
16
+
17
+ def extra_available_subcommands
18
+ instance.if_present({}, &:extra_available_subcommands)
19
+ end
20
+
21
+ def stereotype_module
22
+ instance.application.stereotype.namespace_module
23
+ end
24
+
25
+ def stereotype_name
26
+ stereotype_module.name
27
+ end
28
+
29
+ private
30
+
31
+ def instance_uncached
32
+ parsed.instance_id.if_present { |v| ::Avm::Registry.instances.detect(v) }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ end
6
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Launcher
5
+ class Context
6
+ class InstanceCollector
7
+ common_constructor :context
8
+
9
+ def add_all
10
+ instances_set.merge(context.instances)
11
+ self
12
+ end
13
+
14
+ def add_path(path)
15
+ instances_set.merge(instances_on_path(path))
16
+ self
17
+ end
18
+
19
+ def add_pending
20
+ instances_set.merge(context.pending_instances)
21
+ self
22
+ end
23
+
24
+ def instances
25
+ instances_set.sort
26
+ end
27
+
28
+ private
29
+
30
+ def instance_match?(instance, instance_name)
31
+ ::File.fnmatch?(instance_name, instance.name)
32
+ end
33
+
34
+ def instances_on_path(path)
35
+ context.instances.select { |instance| instance_match?(instance, path) }
36
+ end
37
+
38
+ def instances_set
39
+ @instances_set ||= ::Set.new
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby-progressbar'
4
+
5
+ module Avm
6
+ module Launcher
7
+ class Context
8
+ class InstanceDiscovery
9
+ class RootInstancePaths
10
+ acts_as_instance_method
11
+ enable_speaker
12
+
13
+ common_constructor :owner
14
+
15
+ # @return [Array<Avm::Launcher::Paths::Logical>]
16
+ def result
17
+ application_user_local_source_paths.map do |path|
18
+ ::Avm::Launcher::Paths::Logical.new(owner.context, nil, path.to_path,
19
+ "/#{path.basename}")
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ # @param application [Avm::Applications::Base]
26
+ # @return [Pathname, nil]
27
+ def application_user_local_source_path(application) # rubocop:disable Metrics/MethodLength
28
+ if application.user_local_source_path.blank?
29
+ warn "Application \"#{application}\" does not have a user local source set"
30
+ nil
31
+ elsif application.user_local_source_path.directory?
32
+ infov application,
33
+ "user local source found in \"#{application.user_local_source_path}"
34
+ application.user_local_source_path
35
+ else
36
+ warn "Application \"#{application}\"'s local source path is not a directory"
37
+ nil
38
+ end
39
+ end
40
+
41
+ # @return [Array<Pathname>]
42
+ def application_user_local_source_paths
43
+ ::Avm::Registry.applications.available.sort_by { |a| [a.id] }.map do |application|
44
+ application_user_local_source_path(application)
45
+ end.compact_blank.uniq.sort
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Launcher
5
+ class Context
6
+ class InstanceDiscovery
7
+ enable_simple_cache
8
+
9
+ # @!method instances
10
+ # @return [Array<Avm::Launcher::Instances::Base>]
11
+
12
+ # @!method initialize(context)
13
+ # @param context [Avm::Launcher::Context]
14
+ common_constructor :context
15
+
16
+ private
17
+
18
+ # @return [Array<Avm::Launcher::Instances::Base>]
19
+ def instances_uncached
20
+ root_instance_paths.flat_map { |path| path_instances(path, nil) }
21
+ end
22
+
23
+ # @param path [Avm::Launcher::Paths::Logical]
24
+ # @param parent_instance [Avm::Launcher::Instances::Base]
25
+ # @return [Array<Avm::Launcher::Instances::Base>]
26
+ def path_instances(path, parent_instance)
27
+ on_rescued_path_instances(path) do |r|
28
+ if path.project?
29
+ parent_instance = ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
30
+ r << path
31
+ end
32
+ children = path.children
33
+ r.concat(children.flat_map { |c| path_instances(c, parent_instance) })
34
+ end
35
+ end
36
+
37
+ # @param path [Avm::Launcher::Paths::Logical]
38
+ # @return [Array<Avm::Launcher::Instances::Base>]
39
+ def on_rescued_path_instances(path)
40
+ r = []
41
+ begin
42
+ yield(r) if path.included?
43
+ rescue StandardError => e
44
+ warn("#{path}: #{e}")
45
+ end
46
+ r
47
+ end
48
+
49
+ require_sub __FILE__, require_mode: :kernel
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Launcher
5
+ class Context
6
+ class InstanceManager
7
+ class CachedInstance
8
+ enable_speaker
9
+ enable_simple_cache
10
+ common_constructor :cached_instances, :data
11
+
12
+ private
13
+
14
+ def instance_uncached
15
+ ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
16
+ rescue ::Avm::Launcher::Errors::NonProject
17
+ warn "Cached instance \"#{data[:logical]}\" not found"
18
+ nil
19
+ end
20
+
21
+ def parent_instance_uncached
22
+ data[:parent]
23
+ .if_present { |v| cached_instances.by_logical_path(v) }
24
+ .if_present(&:instance)
25
+ end
26
+
27
+ def path_uncached
28
+ ::Avm::Launcher::Paths::Logical.from_h(cached_instances.context, data)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Launcher
5
+ class Context
6
+ class InstanceManager
7
+ class CachedInstances
8
+ enable_simple_cache
9
+ common_constructor :context, :content
10
+
11
+ def instances
12
+ content.keys.map { |k| by_logical_path(k).instance }.compact_blank
13
+ end
14
+
15
+ def by_logical_path(key)
16
+ cached_instances[key].if_blank do
17
+ cached_instances[key] = ::Avm::Launcher::Context::InstanceManager::CachedInstance.new(
18
+ self, content.fetch(key)
19
+ )
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def cached_instances_uncached
26
+ {}
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require('yaml')
4
+
5
+ module Avm
6
+ module Launcher
7
+ class Context
8
+ class InstanceManager
9
+ enable_simple_cache
10
+ common_constructor :context
11
+
12
+ def publish_state_set(instance, stereotype_name, check_status)
13
+ data = cached_instances_file_content_uncached
14
+ data[instance.logical] ||= {}
15
+ data[instance.logical][:publish_state] ||= {}
16
+ data[instance.logical][:publish_state][stereotype_name] = check_status
17
+ write_cache_file(data)
18
+ end
19
+
20
+ def pending_instances
21
+ instances.select { |instance| pending_instance?(instance) }
22
+ end
23
+
24
+ private
25
+
26
+ def instances_uncached
27
+ (cached_instances || search_instances).select(&:included?)
28
+ end
29
+
30
+ def search_instances
31
+ cache_instances(::Avm::Launcher::Context::InstanceDiscovery.new(context).instances)
32
+ end
33
+
34
+ def cached_instances
35
+ return nil if context.recache
36
+ return nil unless cached_instances_file_content
37
+
38
+ CachedInstances.new(self, cached_instances_file_content).instances
39
+ end
40
+
41
+ def cached_instances_file_content_uncached
42
+ r = YAML.load_file(cache_file_path)
43
+ r.is_a?(::Hash) ? r : nil
44
+ rescue Errno::ENOENT
45
+ nil
46
+ end
47
+
48
+ def cache_instances(instances)
49
+ write_cache_file(instances.to_h { |i| [i.logical, i.to_h] })
50
+ instances
51
+ end
52
+
53
+ def write_cache_file(data)
54
+ cache_file_path.to_pathname.parent.mkpath
55
+ ::File.write(cache_file_path, data.to_yaml)
56
+ end
57
+
58
+ def cache_file_path
59
+ ::File.join(context.cache_root, 'instances.yml')
60
+ end
61
+
62
+ def pending_instance?(instance)
63
+ data = cached_instances_file_content
64
+ return false unless data[instance.logical]
65
+ return false unless data[instance.logical][:publish_state].is_a?(Hash)
66
+
67
+ data[instance.logical][:publish_state].any? do |_k, v|
68
+ ::Avm::Launcher::Publish::CheckResult.pending_status?(v)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end