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,128 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ class PublishBase < ::Avm::Launcher::Publish::Base
7
+ include ::EacRubyUtils::SimpleCache
8
+
9
+ enable_speaker
10
+
11
+ CHECKERS = %w[remote_url remote_fetch publish_remote_no_exist remote_equal remote_following
12
+ local_following].freeze
13
+
14
+ DEFAULT_REMOTE_REF = 'master'
15
+
16
+ REMOTE_UNAVAILABLE_MESSAGES = ['could not resolve host', 'connection timed out',
17
+ 'no route to host'].map(&:downcase).freeze
18
+
19
+ protected
20
+
21
+ def internal_check
22
+ CHECKERS.each do |checker|
23
+ result = send("#{checker}_check_result")
24
+ return result if result
25
+ end
26
+ divergent_result_check_result
27
+ rescue ::Avm::Launcher::Instances::Error => e
28
+ ::Avm::Launcher::Publish::CheckResult.blocked(e.message)
29
+ rescue ::StandardError => e
30
+ raise e unless remote_unavailable_error?(e)
31
+
32
+ ::Avm::Launcher::Publish::CheckResult.blocked(e.message)
33
+ end
34
+
35
+ private
36
+
37
+ def remote_url_check_result
38
+ remote = sgit.remote(remote_name)
39
+ return if remote.exist? && remote.url.present?
40
+
41
+ ::Avm::Launcher::Publish::CheckResult.blocked("Remote \"#{remote_name}\" has blank path")
42
+ end
43
+
44
+ def remote_fetch_check_result
45
+ remote_fetch
46
+ nil
47
+ end
48
+
49
+ def remote_unavailable_error?(error)
50
+ error_message = error.message.downcase
51
+ REMOTE_UNAVAILABLE_MESSAGES.any? do |message|
52
+ error_message.include?(message)
53
+ end
54
+ end
55
+
56
+ def publish_remote_no_exist_check_result
57
+ return nil if sgit.remote_exist?(remote_name)
58
+
59
+ ::Avm::Launcher::Publish::CheckResult.blocked('Remote does not exist')
60
+ end
61
+
62
+ def remote_equal_check_result
63
+ return nil unless remote_sha.present? && remote_sha == local_sha
64
+
65
+ ::Avm::Launcher::Publish::CheckResult.updated('Remote equal')
66
+ end
67
+
68
+ def remote_following_check_result
69
+ return nil unless remote_sha.present? && sgit.descendant?(remote_sha, local_sha)
70
+
71
+ ::Avm::Launcher::Publish::CheckResult.outdated('Remote following')
72
+ end
73
+
74
+ def divergent_result_check_result
75
+ ::Avm::Launcher::Publish::CheckResult.blocked(
76
+ "Divergent (L: #{local_sha}, R: #{remote_sha})"
77
+ )
78
+ end
79
+
80
+ def local_following?
81
+ return true if remote_sha.blank?
82
+
83
+ sgit.descendant?(local_sha, remote_sha)
84
+ end
85
+
86
+ def local_following_check_result
87
+ return nil unless local_following?
88
+
89
+ ::Avm::Launcher::Publish::CheckResult.pending('Local following')
90
+ end
91
+
92
+ def sgit_uncached
93
+ ::Avm::Git::Launcher::Base.new(instance.warped)
94
+ end
95
+
96
+ def publish
97
+ info 'Pushing...'
98
+ sgit.push(remote_name, 'HEAD:master',
99
+ dryrun: !::Avm::Launcher::Context.current.publish_options[:confirm])
100
+ info 'Pushed!'
101
+ end
102
+
103
+ def local_sha
104
+ sgit.git.object('HEAD').sha
105
+ end
106
+
107
+ def remote_sha_uncached
108
+ remote_fetch
109
+ b = sgit.git.branches["#{remote_name}/#{remote_ref}"]
110
+ b&.gcommit&.sha
111
+ end
112
+
113
+ def remote_fetch_uncached
114
+ sgit.fetch(remote_name)
115
+ end
116
+
117
+ def remote_name
118
+ ::Avm::Git::Launcher::WarpBase::TARGET_REMOTE
119
+ end
120
+
121
+ # @return [String]
122
+ def remote_ref
123
+ DEFAULT_REMOTE_REF
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ class Remote
7
+ common_constructor :git, :name
8
+
9
+ def exist?
10
+ git.execute!('remote').each_line.any? { |line| line.strip == name }
11
+ end
12
+
13
+ def ls
14
+ git.execute!(['ls-remote', name]).each_line.to_h do |line|
15
+ x = line.strip.split(/\s+/)
16
+ [x[1], x[0]]
17
+ end
18
+ end
19
+
20
+ # +git remote add ...+
21
+ def add(url)
22
+ git.execute!('remote', 'add', name, url)
23
+ end
24
+
25
+ # +git remote rm ...+
26
+ def remove
27
+ git.execute!('remote', 'rm', name)
28
+ end
29
+
30
+ # +git remote get-url ...+
31
+ def url
32
+ git.execute!('remote', 'get-url', name).strip.if_present(nil)
33
+ end
34
+
35
+ # git remote set-url ...
36
+ def url_set(url)
37
+ git.execute!('remote', 'set-url', name, url)
38
+ end
39
+
40
+ # Add or set URL if +url+ is present, remove remote if is blank.
41
+ def url=(url)
42
+ if exist? && url.blank?
43
+ remove
44
+ elsif exist? && self.url != url
45
+ url_set(url)
46
+ elsif !exist?
47
+ add(url)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ module SubWarpBase
7
+ private
8
+
9
+ def parent_instance_uncached
10
+ if instance.parent.blank?
11
+ raise ::Avm::Launcher::Errors::Base,
12
+ 'Instance is a GitSubrepo, but do not have a parent Git repository (Logical ' \
13
+ "path: \"#{instance}\", Real path: \"#{instance.real}\")"
14
+ end
15
+
16
+ r = find_parent_instance(instance.parent)
17
+ return r if r
18
+
19
+ ::Avm::Launcher::Errors::Base.new('Git parent not found')
20
+ end
21
+
22
+ def find_parent_instance(current)
23
+ if ::Avm::Launcher::Stereotype.git_stereotypes.any? { |s| current.stereotype?(s) }
24
+ return current
25
+ end
26
+
27
+ current.parent ? find_parent_instance(current.parent) : nil
28
+ end
29
+
30
+ def to_parent_git_path
31
+ instance.logical.gsub(%r{\A#{Regexp.quote(parent_instance.logical)}/}, '')
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ # Métodos abstratos:
7
+ # * source_instance
8
+ # * source_remote_name
9
+ # * current_ref
10
+ class WarpBase < ::Avm::Launcher::Paths::Real
11
+ include ::EacRubyUtils::SimpleCache
12
+
13
+ TARGET_REMOTE = ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
14
+
15
+ def initialize(instance)
16
+ @instance = instance
17
+ cache_git.git.reset_hard(current_ref)
18
+ cache_git.remote(TARGET_REMOTE).url = target_remote_url
19
+ super(path)
20
+ end
21
+
22
+ protected
23
+
24
+ attr_reader :instance
25
+
26
+ def validate_source_current_revision
27
+ if source_git.rev_parse(source_instance.options.git_current_revision, false).present?
28
+ return
29
+ end
30
+
31
+ raise ::Avm::Launcher::Instances::Error,
32
+ "Refspec \"#{source_instance.options.git_current_revision}\" " \
33
+ "not found in \"#{source_git}\""
34
+ end
35
+
36
+ def update
37
+ validate_source_current_revision
38
+ ::Avm::Git::Launcher::MirrorUpdate.new(
39
+ path,
40
+ source_instance.real,
41
+ source_instance.options.git_current_revision
42
+ )
43
+ end
44
+
45
+ def path
46
+ instance.cache_path('git_repository')
47
+ end
48
+
49
+ def source_git_uncached
50
+ ::Avm::Git::Launcher::Base.new(source_instance.real)
51
+ end
52
+
53
+ def cache_git_uncached
54
+ ::Avm::Git::Launcher::Base.new(update)
55
+ end
56
+
57
+ def target_remote_url
58
+ ::Avm::Git::Vendor::Github.to_ssh_url(source_git.git.remote(source_remote_name).url)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ module LocalProjectMixin
8
+ # @return [EacGit::Local]
9
+ def git_repo
10
+ @git_repo ||= ::EacGit::Local.new(path)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ class Publish < ::Avm::Git::Launcher::PublishBase
8
+ PUBLISH_GIT_REMOTE_NAME = 'publish'
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ class Warp < ::Avm::Git::Launcher::WarpBase
8
+ private
9
+
10
+ def current_ref
11
+ 'HEAD'
12
+ end
13
+
14
+ def source_instance
15
+ instance
16
+ end
17
+
18
+ def source_remote_name
19
+ ::Avm::Git::LauncherStereotypes::Git::Publish::PUBLISH_GIT_REMOTE_NAME
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Git
7
+ require_sub __FILE__
8
+ include Avm::Launcher::Stereotype
9
+
10
+ class << self
11
+ def match?(path)
12
+ File.directory?(path.real.subpath('.git'))
13
+ end
14
+
15
+ def color
16
+ :white
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ class Publish < ::Avm::Git::Launcher::PublishBase
8
+ # @return [Pathname]
9
+ def config_path
10
+ instance.parent.warped.to_pathname.join(
11
+ "./#{instance.to_parent_path}",
12
+ ::Avm::Git::LauncherStereotypes::GitSubrepo::CONFIG_SUBPATH
13
+ )
14
+ end
15
+
16
+ # @return [EacGit::Local::Subrepo::Config]
17
+ def config
18
+ ::EacGit::Local::Subrepo::Config.from_file(config_path)
19
+ end
20
+
21
+ # @return [String]
22
+ def remote_ref
23
+ config.remote_branch || super
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ class Warp < ::Avm::Launcher::Paths::Real
8
+ include ::Avm::Git::Launcher::SubWarpBase
9
+ include ::EacRubyUtils::SimpleCache
10
+
11
+ attr_reader :instance
12
+
13
+ def initialize(instance)
14
+ @instance = instance
15
+ check_parent
16
+ init_aux
17
+ push_to_aux
18
+ reset
19
+ assert_target_remote
20
+ super(warped_git)
21
+ end
22
+
23
+ private
24
+
25
+ def check_parent
26
+ return if parent_git_warped.rev_parse(subrepo_parent_hash) &&
27
+ parent_git_warped.descendant?('HEAD', subrepo_parent_hash)
28
+
29
+ raise Avm::Launcher::Errors::Base,
30
+ "Subrepo parent hash \"#{subrepo_parent_hash}\" " \
31
+ "not found in \"#{parent_git_warped}\""
32
+ end
33
+
34
+ def subrepo_parent_hash
35
+ data = parent_git_warped.subrepo_status(to_parent_git_path)
36
+ h = data['Pull Parent']
37
+ return h if h.present?
38
+
39
+ raise Avm::Launcher::Errors::Base, "Subrepo parent hash is blank: #{data}"
40
+ end
41
+
42
+ def init_aux
43
+ ::Avm::Git::Launcher::Base.new(aux_path).init_bare
44
+ end
45
+
46
+ def parent_git_warped_uncached
47
+ ::Avm::Git::Launcher::Base.new(parent_instance.warped)
48
+ end
49
+
50
+ def aux_path
51
+ instance.cache_path('subrepo_aux_git_repository')
52
+ end
53
+
54
+ def warped_git_uncached
55
+ ::Avm::Git::Launcher::Base.new(instance.cache_path('git_repository'))
56
+ end
57
+
58
+ def push_to_aux
59
+ parent_git_warped.execute!('subrepo', 'branch', to_parent_git_path, '-fF')
60
+ h = parent_git_warped.rev_parse("subrepo/#{to_parent_git_path}", true)
61
+ parent_git_warped.execute!('push', aux_path, "#{h}:refs/heads/master", '--force')
62
+ end
63
+
64
+ def reset
65
+ ::Avm::Git::Launcher::MirrorUpdate.new(warped_git, aux_path, 'master')
66
+ end
67
+
68
+ def assert_target_remote
69
+ warped_git.assert_remote_url(::Avm::Git::Launcher::WarpBase::TARGET_REMOTE,
70
+ target_remote_url)
71
+ end
72
+
73
+ def target_remote_url
74
+ ::Avm::Git::Vendor::Github.to_ssh_url(
75
+ parent_git_warped.subrepo_remote_url(to_parent_git_path)
76
+ )
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class GitSubrepo
7
+ require_sub __FILE__
8
+ include Avm::Launcher::Stereotype
9
+
10
+ CONFIG_SUBPATH = '.gitrepo'
11
+
12
+ class << self
13
+ def match?(path)
14
+ File.exist?(path.real.subpath(CONFIG_SUBPATH)) && subrepo_url(path.real) != 'none'
15
+ end
16
+
17
+ def color
18
+ :light_cyan
19
+ end
20
+
21
+ def subrepo_url(path)
22
+ File.read(path.subpath(CONFIG_SUBPATH)).each_line do |l|
23
+ m = /remote\s*=\s(.+)/.match(l)
24
+ return m[1] if m
25
+ end
26
+ raise ::Avm::Git::Launcher::Error.new(path, '"remote = ... " not found')
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ class Provider
7
+ STEREOTYPES = [::Avm::Git::LauncherStereotypes::Git,
8
+ ::Avm::Git::LauncherStereotypes::GitSubrepo].freeze
9
+
10
+ def all
11
+ STEREOTYPES
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module LauncherStereotypes
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ class ReferenceUpdate
7
+ enable_listable
8
+ lists.add_symbol :operation, :remove
9
+
10
+ common_constructor :repository, :reference, :operation
11
+
12
+ def run_operation
13
+ send("run_operation_#{operation}")
14
+ end
15
+
16
+ def to_s
17
+ "#{reference} [#{operation}]"
18
+ end
19
+
20
+ private
21
+
22
+ def reference_pathname
23
+ repository.refs_root.join(reference)
24
+ end
25
+
26
+ def run_operation_remove
27
+ reference_pathname.unlink
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ class Repository
7
+ enable_simple_cache
8
+ common_constructor :eac_git_local
9
+
10
+ def collected_references
11
+ @collected_references || []
12
+ end
13
+
14
+ def collect_subrepos
15
+ collect_references_with_pattern(
16
+ %r{\Asubrepo/},
17
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
18
+ )
19
+ collect_references_with_pattern(
20
+ %r{\Aheads/subrepo/},
21
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
22
+ )
23
+ end
24
+
25
+ def collect_originals
26
+ collect_references_with_pattern(
27
+ %r{\Aoriginal/},
28
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
29
+ )
30
+ end
31
+
32
+ def all_branches
33
+ eac_git_local.execute!
34
+ end
35
+
36
+ delegate :to_s, to: :eac_git_local
37
+
38
+ private
39
+
40
+ def all_references
41
+ ::Pathname.glob("#{refs_root}/**/*").select(&:file?)
42
+ .map { |p| p.relative_path_from(refs_root).to_path }
43
+ end
44
+
45
+ def reference_update_by_ref(reference)
46
+ collected_references.find { |ru| ru.reference == reference }
47
+ end
48
+
49
+ def collect_reference(reference, operation)
50
+ new_ru = ::Avm::Git::Organize::ReferenceUpdate.new(self, reference, operation)
51
+ reference_update_by_ref(new_ru.reference).if_present do |ru_found|
52
+ raise "Reference #{new_ru} already added (#{ru_found})"
53
+ end
54
+ @collected_references ||= []
55
+ @collected_references << new_ru
56
+ end
57
+
58
+ def collect_references_with_pattern(pattern, operation)
59
+ references_with_pattern(pattern).each do |reference|
60
+ collect_reference(reference, operation)
61
+ end
62
+ end
63
+
64
+ def references_with_pattern(pattern)
65
+ all_references.select { |reference| pattern.if_match(reference, false) }
66
+ end
67
+
68
+ def refs_root_uncached
69
+ eac_git_local.root_path / '.git' / 'refs'
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Organize
6
+ require_sub __FILE__
7
+ end
8
+ end
9
+ end