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,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ class Entry
6
+ class NoContextEntry
7
+ def found?
8
+ false
9
+ end
10
+
11
+ def value
12
+ nil
13
+ end
14
+
15
+ def value!
16
+ raise('No context entry - there is no value')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_config/node'
4
+
5
+ module Avm
6
+ module Entries
7
+ class Entry
8
+ common_constructor :parent, :suffix, :options
9
+
10
+ def auto_value
11
+ auto_value_entry.value
12
+ end
13
+
14
+ def auto_value_entry
15
+ @auto_value_entry ||= ::Avm::Entries::AutoValues::Entry.new(parent, suffix)
16
+ end
17
+
18
+ # @return [Boolean]
19
+ def context_found?
20
+ context_entry.found?
21
+ end
22
+
23
+ # @return [Boolean]
24
+ def found?
25
+ context_found?
26
+ end
27
+
28
+ def full_path
29
+ (parent.path_prefix + suffix_as_array).join('.')
30
+ end
31
+
32
+ def optional_value
33
+ context_entry.found? ? context_entry.value : auto_value
34
+ end
35
+
36
+ def read
37
+ context_entry.value
38
+ end
39
+
40
+ def suffix_as_array
41
+ if suffix.is_a?(::Array)
42
+ suffix.dup
43
+ else
44
+ ::EacConfig::PathsHash.parse_entry_key(suffix.to_s)
45
+ end
46
+ end
47
+
48
+ def value
49
+ optional_value || read
50
+ end
51
+
52
+ def value!
53
+ optional_value.if_present { |v| return v }
54
+ context_entry.value!
55
+ end
56
+
57
+ def write(value)
58
+ context_entry.value = value
59
+ end
60
+
61
+ private
62
+
63
+ def context_entry
64
+ current_node = ::EacConfig::Node.context.optional_current
65
+ return current_node.entry(full_path) if current_node.present?
66
+
67
+ ::Avm::Entries::Entry::NoContextEntry.new
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module Entries
7
+ module Jobs
8
+ module Base
9
+ common_concern do
10
+ include ::ActiveSupport::Callbacks
11
+ include ::Avm::Entries::Jobs::WithVariablesSource
12
+
13
+ enable_speaker
14
+ enable_simple_cache
15
+ enable_listable
16
+ common_constructor :instance, :options, default: [{}] do
17
+ if option_list.present?
18
+ self.options = option_list.hash_keys_validate!(options.symbolize_keys)
19
+ end
20
+ end
21
+ define_callbacks(*jobs)
22
+ end
23
+
24
+ module ClassMethods
25
+ def jobs
26
+ const_get('JOBS').dup
27
+ end
28
+ end
29
+
30
+ module InstanceMethods
31
+ def option_list
32
+ nil
33
+ end
34
+
35
+ def run
36
+ start_banner if respond_to?(:start_banner)
37
+ run_jobs
38
+ ::Avm::Result.success('Done!')
39
+ rescue ::Avm::Result::Error => e
40
+ e.to_result
41
+ end
42
+
43
+ protected
44
+
45
+ def run_jobs
46
+ jobs.each do |job|
47
+ run_callbacks job do
48
+ send(job)
49
+ end
50
+ end
51
+ end
52
+
53
+ def jobs
54
+ self.class.jobs
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ module Jobs
6
+ class VariablesSource
7
+ class ReadEntry
8
+ enable_method_class
9
+ common_constructor :variables_source, :path, :options, default: [{}]
10
+ delegate :instance, :job, to: :variables_source
11
+
12
+ def result
13
+ return result_from_job if result_from_job?
14
+ return result_from_instance_method if result_from_instance_method?
15
+
16
+ result_from_instance_entry
17
+ end
18
+
19
+ private
20
+
21
+ def path_method_name
22
+ path.gsub('.', '_').underscore
23
+ end
24
+
25
+ def result_from_instance_entry
26
+ instance.read_entry(path, options)
27
+ end
28
+
29
+ def result_from_instance_method
30
+ instance.send(path_method_name)
31
+ end
32
+
33
+ def result_from_instance_method?
34
+ instance.respond_to?(path_method_name, true)
35
+ end
36
+
37
+ def result_from_job
38
+ job.send(path_method_name)
39
+ end
40
+
41
+ def result_from_job?
42
+ job.respond_to?(path_method_name, true)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ module Jobs
6
+ class VariablesSource
7
+ require_sub __FILE__, require_dependency: true
8
+ common_constructor :job
9
+ delegate :instance, to: :job
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ module Jobs
6
+ module WithVariablesSource
7
+ def variables_source
8
+ ::Avm::Entries::Jobs::VariablesSource.new(self)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ module Jobs
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ class KeysConstantsSet
6
+ common_constructor :entries_provider_class, :prefix, :suffixes
7
+
8
+ # @return [Array<String>]
9
+ def result
10
+ if suffixes.is_a?(::Hash)
11
+ keys_consts_set_from_hash
12
+ elsif suffixes.is_a?(::Enumerable)
13
+ keys_consts_set_from_enum
14
+ else
15
+ raise "Unmapped suffixes class: #{suffixes.class}"
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ # @return [String]
22
+ def key_const_set(prefix, suffix)
23
+ key = [prefix, suffix].compact_blank.join('.')
24
+ entries_provider_class.const_set(key.gsub('.', '_').upcase, key)
25
+ key
26
+ end
27
+
28
+ # @return [Array<String>]
29
+ def keys_consts_set_from_enum
30
+ suffixes.map { |suffix| key_const_set(prefix, suffix) }
31
+ end
32
+
33
+ # @return [Array<String>]
34
+ def keys_consts_set_from_hash
35
+ suffixes.flat_map do |k, v|
36
+ self.class.new(entries_provider_class, prefix.to_s + (k.blank? ? '' : ".#{k}"), v).result
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ class UriBuilder
6
+ FIELDS = %w[scheme user password host port path query fragment].freeze
7
+ FIELDS_TRANSLATIONS = {
8
+ username: :user, hostname: :host
9
+ }.freeze
10
+ ENTRIES_FIELDS = FIELDS.map do |field|
11
+ FIELDS_TRANSLATIONS.key(field.to_sym).if_present(field).to_s
12
+ end
13
+
14
+ class << self
15
+ def from_all_fields(&block)
16
+ r = new
17
+ ENTRIES_FIELDS.each do |field_name|
18
+ field_value = block.call(field_name)
19
+ r.field_set(field_name, field_value) if field_value.present?
20
+ end
21
+ r
22
+ end
23
+
24
+ def from_source(source)
25
+ if source.is_a?(::Addressable::URI)
26
+ from_source_uri(source)
27
+ elsif source.blank?
28
+ new
29
+ else
30
+ raise "Unexpected source: #{source}"
31
+ end
32
+ end
33
+
34
+ def from_source_uri(source_uri)
35
+ new(source_uri.to_hash)
36
+ end
37
+ end
38
+
39
+ common_constructor :data, default: [{}]
40
+
41
+ def avm_field_get(avm_field)
42
+ field_get(translate_field(avm_field))
43
+ end
44
+
45
+ # @return [String, nil]
46
+ def field_get(name)
47
+ v = data[name.to_sym]
48
+ v&.to_s
49
+ end
50
+
51
+ def field_set(field, value)
52
+ tfield = translate_field(field)
53
+ if FIELDS.include?(tfield)
54
+ main_field_set(tfield, value)
55
+ else
56
+ sub_field_set(tfield, value)
57
+ end
58
+ end
59
+
60
+ def translate_field(field)
61
+ if FIELDS_TRANSLATIONS.key?(field.to_sym)
62
+ FIELDS_TRANSLATIONS.fetch(field.to_sym).to_s
63
+ else
64
+ field.to_s
65
+ end
66
+ end
67
+
68
+ # @return [Addressable::URI, nil]
69
+ def to_uri
70
+ to_required_uri
71
+ rescue ::Addressable::URI::InvalidURIError
72
+ nil
73
+ end
74
+
75
+ # @return [Addressable::URI]
76
+ def to_required_uri
77
+ ::Addressable::URI.new(FIELDS.to_h { |f| [f.to_sym, field_get(f)] })
78
+ end
79
+
80
+ private
81
+
82
+ def main_field_set(name, value)
83
+ data[name.to_sym] = value
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Entries
5
+ end
6
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Executables
5
+ class << self
6
+ include ::EacRubyUtils::SimpleCache
7
+
8
+ def env
9
+ ::EacRubyUtils::Envs.local
10
+ end
11
+
12
+ private
13
+
14
+ %w[xdg-open].each do |program|
15
+ define_method("#{program.underscore}_uncached") do
16
+ env.executable(program, '--version')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ostruct'
4
+
5
+ module Avm
6
+ module FileFormats
7
+ class Base
8
+ enable_abstract_methods
9
+ compare_by :class
10
+
11
+ # @params files [Enumerable<Pathname>]
12
+ # @return [Enumerable<Avm::FileFormats::FileResult>]
13
+ def apply(_files)
14
+ raise_abstract_method __method__
15
+ end
16
+
17
+ # @param path [Pathname]
18
+ # @return [Avm::FileFormats::FileWith]
19
+ def file_resource_name(path)
20
+ path.to_pathname.to_path
21
+ end
22
+
23
+ def name
24
+ self.class.name.demodulize
25
+ end
26
+
27
+ # @param file [Pathname]
28
+ # @return [Boolean]
29
+ def match?(_file)
30
+ raise_abstract_method __method__
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ostruct'
4
+
5
+ module Avm
6
+ module FileFormats
7
+ class FileResult
8
+ common_constructor :file, :format, :changed
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module FileFormats
5
+ class SearchFormatter
6
+ include ::EacFs::Traversable
7
+
8
+ enable_simple_cache
9
+ enable_speaker
10
+ enable_listable
11
+ lists.add_symbol :option, :apply, :recursive, :verbose
12
+ common_constructor :source_paths, :options, default: [{}] do
13
+ options.assert_valid_keys(self.class.lists.option.values)
14
+ end
15
+
16
+ def run
17
+ clear
18
+ search_files
19
+ apply
20
+ show_results
21
+ end
22
+
23
+ private
24
+
25
+ def apply
26
+ speak(:infom, "Applying #{@formats_files.count} format(s)... ")
27
+ @formats_files.each do |format, files|
28
+ speak(:infom, "Applying format #{format.name} (Files matched: #{files.count})...")
29
+ next unless options[OPTION_APPLY]
30
+
31
+ @result += format.apply(files)
32
+ end
33
+ end
34
+
35
+ def traverser_check_file(file)
36
+ format = find_format(file)
37
+ speak(:infov, file, format ? format.class : '-')
38
+ return unless format
39
+
40
+ @formats_files[format] ||= []
41
+ @formats_files[format] << file
42
+ end
43
+
44
+ def clear
45
+ @formats_files = {}
46
+ @result = []
47
+ end
48
+
49
+ # @return [Avm::FileFormats::Base, nil]
50
+ def find_format(file)
51
+ ::Avm::Registry.file_formats.detect_optional(file)
52
+ end
53
+
54
+ def search_files
55
+ speak(:infov, 'Directories to search', source_paths.count)
56
+ source_paths.each do |source_path|
57
+ speak(:infom, "Searching files on \"#{source_path}\"...")
58
+ traverser_check_path(source_path)
59
+ end
60
+ end
61
+
62
+ def show_results
63
+ changed = @result.select(&:changed)
64
+ changed.each do |h|
65
+ speak(:out, h.file.to_s.cyan)
66
+ speak(:out, " (#{h.format})".yellow)
67
+ speak(:puts, ' changed'.green)
68
+ end
69
+ speak(:infov, 'Files changed', "#{changed.count}/#{@result.count}")
70
+ end
71
+
72
+ def traverser_recursive
73
+ options[OPTION_RECURSIVE]
74
+ end
75
+
76
+ def speak(method, *method_args)
77
+ return unless options[OPTION_VERBOSE].to_bool
78
+
79
+ send(method, *method_args)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module FileFormats
5
+ class Unknown < ::Avm::FileFormats::Base
6
+ # @params files [Enumerable<Pathname>]
7
+ # @return [Enumerable<Avm::FileFormats::FileResult>]
8
+ def apply(files)
9
+ files.map do |file|
10
+ ::Avm::FileFormats::FileResult.new(file, self.class, false)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module FileFormats
5
+ class Utf8Assert
6
+ UTF8_CHARSET = 'utf-8'
7
+ UTF8_CHARSETS = [UTF8_CHARSET, 'us-ascii'].freeze
8
+
9
+ class << self
10
+ def assert_files(files)
11
+ asserters = files.map { |file| new(file) }
12
+ begin
13
+ asserters.each(&:assert)
14
+ yield
15
+ ensure
16
+ asserters.each(&:revert)
17
+ end
18
+ end
19
+ end
20
+
21
+ enable_simple_cache
22
+ common_constructor :path
23
+
24
+ def assert
25
+ return if original_utf8?
26
+
27
+ convert_self(original_charset, UTF8_CHARSET)
28
+ end
29
+
30
+ def revert
31
+ return if original_utf8?
32
+
33
+ convert_self(UTF8_CHARSET, original_charset)
34
+ end
35
+
36
+ private
37
+
38
+ def original_info_uncached
39
+ ::EacFs::FileInfo.new(path)
40
+ end
41
+
42
+ def original_charset_uncached
43
+ return original_info.content_type.charset if original_info.content_type.charset.present?
44
+
45
+ raise 'No charset found'
46
+ rescue StandardError => e
47
+ raise "Unable to determine the charset of #{path} (#{e.message})"
48
+ end
49
+
50
+ def original_utf8?
51
+ UTF8_CHARSETS.include?(original_charset)
52
+ end
53
+
54
+ def convert_file(from_path, from_charset, to_path, to_charset)
55
+ File.open(from_path, "r:#{from_charset}") do |input|
56
+ File.open(to_path, "w:#{to_charset}") do |output|
57
+ output.write(input.read)
58
+ end
59
+ end
60
+ end
61
+
62
+ def convert_self(from_charset, to_charset)
63
+ temp = ::Tempfile.new
64
+ temp.close
65
+ convert_file(path, from_charset, temp.path, to_charset)
66
+ ::FileUtils.mv(temp.path, path)
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module FileFormats
5
+ end
6
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ module Appendable
8
+ class FileContent < ::Avm::Files::Appendable::ResourceBase
9
+ attr_reader :target_path, :content
10
+
11
+ def initialize(deploy, target_path, content)
12
+ super(deploy)
13
+ @target_path = target_path
14
+ @content = content
15
+ end
16
+
17
+ def write_on(target_dir)
18
+ target_dir.join(target_path).write(content)
19
+ end
20
+
21
+ protected
22
+
23
+ # @return [Enumerable<Symbol>]
24
+ def to_s_attributes
25
+ %i[target_path content]
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ module Appendable
8
+ class PlainDirectory < ::Avm::Files::Appendable::ResourceBase
9
+ attr_reader :source_path
10
+
11
+ def initialize(appender, source_path)
12
+ super(appender)
13
+ @source_path = source_path.to_pathname
14
+ end
15
+
16
+ def write_on(target_dir)
17
+ raise "\"#{source_path}\" is not a directory" unless source_path.directory?
18
+
19
+ ::FileUtils.cp_r("#{source_path}/.", target_dir.to_path)
20
+ end
21
+
22
+ # @return [Enumerable<Symbol>]
23
+ def to_s_attributes
24
+ [:source_path]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end