eac_tools 0.93.0 → 0.94.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 (580) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +58 -58
  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 +39 -0
  6. data/sub/{eac_templates/lib/eac_templates/errors.rb → avm/lib/avm/application_scms.rb} +2 -2
  7. data/sub/avm/lib/avm/application_stereotypes/base.rb +31 -0
  8. data/sub/avm/lib/avm/application_stereotypes.rb +9 -0
  9. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +24 -0
  10. data/sub/avm/lib/avm/applications/base/local_instance.rb +31 -0
  11. data/sub/avm/lib/avm/applications/base/local_source.rb +35 -0
  12. data/sub/avm/lib/avm/applications/base/naming.rb +28 -0
  13. data/sub/avm/lib/avm/applications/base/organization.rb +29 -0
  14. data/sub/avm/lib/avm/applications/base/publishing.rb +43 -0
  15. data/sub/avm/lib/avm/applications/base/scm.rb +27 -0
  16. data/sub/avm/lib/avm/applications/base/stereotype.rb +31 -0
  17. data/sub/avm/lib/avm/applications/base.rb +37 -0
  18. data/sub/{eac_templates/lib/eac_templates/modules.rb → avm/lib/avm/applications.rb} +2 -2
  19. data/sub/avm/lib/avm/data/callbacks.rb +37 -0
  20. data/sub/avm/lib/avm/data/clearer.rb +20 -0
  21. data/sub/avm/lib/avm/data/dumper.rb +142 -0
  22. data/sub/avm/lib/avm/data/loader.rb +28 -0
  23. data/sub/avm/lib/avm/data/package/base_performer.rb +38 -0
  24. data/sub/avm/lib/avm/data/package/build_directory.rb +28 -0
  25. data/sub/avm/lib/avm/data/package/clear.rb +22 -0
  26. data/sub/avm/lib/avm/data/package/dump.rb +45 -0
  27. data/sub/avm/lib/avm/data/package/load.rb +36 -0
  28. data/sub/avm/lib/avm/data/package.rb +67 -0
  29. data/sub/avm/lib/avm/data/performer.rb +49 -0
  30. data/sub/avm/lib/avm/data/rotate.rb +107 -0
  31. data/sub/avm/lib/avm/data/unit.rb +49 -0
  32. data/sub/avm/lib/avm/data/unit_with_commands.rb +52 -0
  33. data/sub/avm/lib/avm/docker/container.rb +50 -0
  34. data/sub/avm/lib/avm/docker/image.rb +76 -0
  35. data/sub/avm/lib/avm/docker/runner.rb +132 -0
  36. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0.rb → avm/lib/avm/docker.rb} +1 -1
  37. data/sub/avm/lib/avm/entries/auto_values/entry.rb +39 -0
  38. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +24 -0
  39. data/sub/avm/lib/avm/entries/auto_values.rb +11 -0
  40. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +46 -0
  41. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +28 -0
  42. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +39 -0
  43. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +31 -0
  44. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +44 -0
  45. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +42 -0
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +63 -0
  47. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +19 -0
  48. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +28 -0
  49. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +25 -0
  50. data/sub/avm/lib/avm/entries/base.rb +57 -0
  51. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +23 -0
  52. data/sub/avm/lib/avm/entries/entry.rb +75 -0
  53. data/sub/avm/lib/avm/entries/jobs/base.rb +62 -0
  54. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +50 -0
  55. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +15 -0
  56. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +15 -0
  57. data/sub/avm/lib/avm/entries/jobs.rb +11 -0
  58. data/sub/avm/lib/avm/entries/keys_constants_set.rb +43 -0
  59. data/sub/avm/lib/avm/entries/uri_builder.rb +91 -0
  60. data/sub/avm/lib/avm/entries.rb +9 -0
  61. data/sub/avm/lib/avm/executables.rb +24 -0
  62. data/sub/avm/lib/avm/file_formats/base.rb +35 -0
  63. data/sub/avm/lib/avm/file_formats/file_result.rb +13 -0
  64. data/sub/avm/lib/avm/file_formats/search_formatter.rb +87 -0
  65. data/sub/avm/lib/avm/file_formats/unknown.rb +18 -0
  66. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +72 -0
  67. data/sub/avm/lib/avm/file_formats.rb +9 -0
  68. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +30 -0
  69. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +62 -0
  70. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +35 -0
  71. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +18 -0
  72. data/sub/avm/lib/avm/instances/base/auto_values.rb +14 -0
  73. data/sub/avm/lib/avm/instances/base/dockerizable.rb +45 -0
  74. data/sub/avm/lib/avm/instances/base/entry_keys.rb +27 -0
  75. data/sub/avm/lib/avm/instances/base/install.rb +31 -0
  76. data/sub/avm/lib/avm/instances/base/processes.rb +27 -0
  77. data/sub/avm/lib/avm/instances/base/production.rb +34 -0
  78. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +25 -0
  79. data/sub/avm/lib/avm/instances/base/web.rb +16 -0
  80. data/sub/avm/lib/avm/instances/base.rb +77 -0
  81. data/sub/avm/lib/avm/instances/data/files_unit.rb +59 -0
  82. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +10 -0
  83. data/sub/avm/lib/avm/instances/data/package.rb +27 -0
  84. data/sub/avm/lib/avm/instances/data/unit.rb +40 -0
  85. data/sub/avm/lib/avm/instances/data.rb +11 -0
  86. data/sub/avm/lib/avm/instances/docker_image.rb +15 -0
  87. data/sub/avm/lib/avm/instances/entry_keys.rb +43 -0
  88. data/sub/avm/lib/avm/instances/ids.rb +30 -0
  89. data/sub/avm/lib/avm/instances/process.rb +31 -0
  90. data/sub/avm/lib/avm/instances/runner.rb +37 -0
  91. data/sub/avm/lib/avm/instances.rb +9 -0
  92. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +46 -0
  93. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +53 -0
  94. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +75 -0
  95. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +37 -0
  96. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +35 -0
  97. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +77 -0
  98. data/sub/avm/lib/avm/launcher/context/settings.rb +53 -0
  99. data/sub/avm/lib/avm/launcher/context.rb +95 -0
  100. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  101. data/sub/avm/lib/avm/launcher/errors/non_project.rb +15 -0
  102. data/sub/avm/lib/avm/launcher/errors.rb +11 -0
  103. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +43 -0
  104. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +53 -0
  105. data/sub/avm/lib/avm/launcher/instances/base.rb +78 -0
  106. data/sub/avm/lib/avm/launcher/instances/error.rb +10 -0
  107. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +47 -0
  108. data/sub/avm/lib/avm/launcher/instances/settings.rb +26 -0
  109. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0 → avm/lib/avm/launcher}/instances.rb +1 -1
  110. data/sub/avm/lib/avm/launcher/paths/logical.rb +80 -0
  111. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  112. data/sub/avm/lib/avm/launcher/paths.rb +11 -0
  113. data/sub/avm/lib/avm/launcher/project.rb +17 -0
  114. data/sub/avm/lib/avm/launcher/publish/base.rb +47 -0
  115. data/sub/avm/lib/avm/launcher/publish/check_result.rb +65 -0
  116. data/sub/avm/lib/avm/launcher/publish.rb +11 -0
  117. data/sub/avm/lib/avm/launcher/stereotype.rb +63 -0
  118. data/sub/avm/lib/avm/launcher.rb +9 -0
  119. data/sub/avm/lib/avm/launcher_stereotypes.rb +9 -0
  120. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +46 -0
  121. data/sub/avm/lib/avm/path_string.rb +27 -0
  122. data/sub/avm/lib/avm/registry/application_scms.rb +15 -0
  123. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +49 -0
  124. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +33 -0
  125. data/sub/avm/lib/avm/registry/application_stereotypes.rb +52 -0
  126. data/sub/avm/lib/avm/registry/applications.rb +38 -0
  127. data/sub/avm/lib/avm/registry/config_objects.rb +18 -0
  128. data/sub/avm/lib/avm/registry/file_formats.rb +20 -0
  129. data/sub/avm/lib/avm/registry/from_gems.rb +80 -0
  130. data/sub/avm/lib/avm/registry/instances.rb +16 -0
  131. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +11 -0
  132. data/sub/avm/lib/avm/registry/runners.rb +10 -0
  133. data/sub/avm/lib/avm/registry/scms.rb +10 -0
  134. data/sub/avm/lib/avm/registry/source_generators.rb +17 -0
  135. data/sub/avm/lib/avm/registry/sources.rb +40 -0
  136. data/sub/avm/lib/avm/registry/with_path/cache.rb +31 -0
  137. data/sub/avm/lib/avm/registry/with_path.rb +49 -0
  138. data/sub/avm/lib/avm/registry.rb +35 -0
  139. data/sub/avm/lib/avm/result.rb +82 -0
  140. data/sub/avm/lib/avm/rspec/launcher_controller.rb +96 -0
  141. data/sub/avm/lib/avm/rspec/setup/launcher.rb +20 -0
  142. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +22 -0
  143. data/sub/avm/lib/avm/rspec/setup.rb +36 -0
  144. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +15 -0
  145. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +31 -0
  146. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +26 -0
  147. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +21 -0
  148. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +11 -0
  149. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +14 -0
  150. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +11 -0
  151. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +16 -0
  152. data/sub/avm/lib/avm/rspec.rb +9 -0
  153. data/sub/avm/lib/avm/runners/base.rb +27 -0
  154. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +39 -0
  155. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +82 -0
  156. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +40 -0
  157. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +19 -0
  158. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +40 -0
  159. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +24 -0
  160. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +31 -0
  161. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +21 -0
  162. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +36 -0
  163. data/sub/avm/lib/avm/scms/auto_commit.rb +11 -0
  164. data/sub/avm/lib/avm/scms/base/branches.rb +22 -0
  165. data/sub/avm/lib/avm/scms/base/commits.rb +34 -0
  166. data/sub/avm/lib/avm/scms/base/milestones.rb +21 -0
  167. data/sub/avm/lib/avm/scms/base/remotes.rb +22 -0
  168. data/sub/avm/lib/avm/scms/base.rb +61 -0
  169. data/sub/avm/lib/avm/scms/branch.rb +26 -0
  170. data/sub/avm/lib/avm/scms/changed_file.rb +26 -0
  171. data/sub/avm/lib/avm/scms/commit.rb +66 -0
  172. data/sub/avm/lib/avm/scms/commit_info.rb +39 -0
  173. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  174. data/sub/avm/lib/avm/scms/interval.rb +18 -0
  175. data/sub/avm/lib/avm/scms/null/commit.rb +15 -0
  176. data/sub/avm/lib/avm/scms/null.rb +21 -0
  177. data/sub/avm/lib/avm/scms/remote.rb +11 -0
  178. data/sub/avm/lib/avm/scms.rb +9 -0
  179. data/sub/avm/lib/avm/self/docker_image.rb +14 -0
  180. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  181. data/sub/avm/lib/avm/self/instance.rb +31 -0
  182. data/sub/avm/lib/avm/source_generators/base.rb +75 -0
  183. data/sub/avm/lib/avm/source_generators/option.rb +11 -0
  184. data/sub/avm/lib/avm/source_generators/option_list.rb +32 -0
  185. data/sub/avm/lib/avm/source_generators/runner.rb +58 -0
  186. data/sub/avm/lib/avm/source_generators.rb +9 -0
  187. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +31 -0
  188. data/sub/avm/lib/avm/sources/auto_commit.rb +11 -0
  189. data/sub/avm/lib/avm/sources/base/application.rb +36 -0
  190. data/sub/avm/lib/avm/sources/base/configuration.rb +92 -0
  191. data/sub/avm/lib/avm/sources/base/instance.rb +16 -0
  192. data/sub/avm/lib/avm/sources/base/locale.rb +33 -0
  193. data/sub/avm/lib/avm/sources/base/organizational.rb +32 -0
  194. data/sub/avm/lib/avm/sources/base/parent.rb +28 -0
  195. data/sub/avm/lib/avm/sources/base/stereotype.rb +18 -0
  196. data/sub/avm/lib/avm/sources/base/sub/remove.rb +38 -0
  197. data/sub/avm/lib/avm/sources/base/sub.rb +26 -0
  198. data/sub/avm/lib/avm/sources/base/subs.rb +67 -0
  199. data/sub/avm/lib/avm/sources/base/subs_paths.rb +32 -0
  200. data/sub/avm/lib/avm/sources/base/testing.rb +70 -0
  201. data/sub/avm/lib/avm/sources/base/update.rb +39 -0
  202. data/sub/avm/lib/avm/sources/base/update_sub.rb +57 -0
  203. data/sub/avm/lib/avm/sources/base/update_subs.rb +19 -0
  204. data/sub/avm/lib/avm/sources/base/version_bump.rb +29 -0
  205. data/sub/avm/lib/avm/sources/base.rb +61 -0
  206. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  207. data/sub/avm/lib/avm/sources/configuration.rb +59 -0
  208. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  209. data/sub/avm/lib/avm/sources/issues.rb +11 -0
  210. data/sub/avm/lib/avm/sources/runner.rb +40 -0
  211. data/sub/avm/lib/avm/sources/tests/builder.rb +96 -0
  212. data/sub/avm/lib/avm/sources/tests/performer.rb +35 -0
  213. data/sub/avm/lib/avm/sources/tests/result.rb +15 -0
  214. data/sub/avm/lib/avm/sources/tests/single.rb +75 -0
  215. data/sub/avm/lib/avm/sources/tests.rb +11 -0
  216. data/sub/avm/lib/avm/sources/update_error.rb +8 -0
  217. data/sub/{eac_templates/lib/eac_templates → avm/lib/avm}/sources.rb +1 -1
  218. data/sub/avm/lib/avm/sync.rb +92 -0
  219. data/sub/avm/lib/avm/version.rb +5 -0
  220. data/sub/avm/lib/avm/version_number.rb +45 -0
  221. data/sub/avm/lib/avm/with/application_stereotype.rb +33 -0
  222. data/sub/avm/lib/avm/with/extra_subcommands.rb +44 -0
  223. data/sub/{eac_templates/lib/eac_templates.rb → avm/lib/avm.rb} +1 -1
  224. data/sub/avm/locale/en.yml +6 -0
  225. data/sub/avm/locale/pt-BR.yml +6 -0
  226. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +31 -0
  227. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +12 -0
  228. data/sub/avm/spec/lib/avm/applications/base_spec.rb +23 -0
  229. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +3 -0
  230. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +11 -0
  231. data/sub/avm/spec/lib/avm/instances/base_spec.rb +107 -0
  232. data/sub/avm/spec/lib/avm/instances/base_spec_files/config.yml +50 -0
  233. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +139 -0
  234. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +5 -0
  235. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +9 -0
  236. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +42 -0
  237. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +5 -0
  238. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +5 -0
  239. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +28 -0
  240. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +21 -0
  241. data/sub/avm/spec/lib/avm/scms/base_spec.rb +7 -0
  242. data/sub/avm/spec/lib/avm/sources/base_spec.rb +7 -0
  243. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +9 -0
  244. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +6 -0
  245. data/sub/{eac_templates → avm}/spec/spec_helper.rb +1 -2
  246. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +29 -0
  247. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools/version.rb +7 -0
  248. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  249. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  250. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  251. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +16 -0
  252. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +1 -0
  253. data/sub/avm/template/avm/self/docker_image/Dockerfile +17 -0
  254. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +12 -0
  255. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +2 -2
  256. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  257. data/sub/avm-git/avm-git.gemspec +25 -0
  258. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +49 -0
  259. data/sub/avm-git/lib/avm/git/application_scms/base.rb +21 -0
  260. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/sources.rb → avm-git/lib/avm/git/application_scms.rb} +2 -2
  261. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +31 -0
  262. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  263. data/sub/avm-git/lib/avm/git/commit/file.rb +46 -0
  264. data/sub/avm-git/lib/avm/git/commit.rb +59 -0
  265. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +42 -0
  266. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +23 -0
  267. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +61 -0
  268. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +39 -0
  269. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  270. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  271. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +40 -0
  272. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +21 -0
  273. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +39 -0
  274. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +53 -0
  275. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  276. data/sub/avm-git/lib/avm/git/issue/complete.rb +69 -0
  277. data/sub/avm-git/lib/avm/git/issue.rb +11 -0
  278. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  279. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +23 -0
  280. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +40 -0
  281. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +44 -0
  282. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +59 -0
  283. data/sub/avm-git/lib/avm/git/launcher/base.rb +87 -0
  284. data/sub/avm-git/lib/avm/git/launcher/error.rb +15 -0
  285. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +38 -0
  286. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +131 -0
  287. data/sub/avm-git/lib/avm/git/launcher/remote.rb +55 -0
  288. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +33 -0
  289. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +68 -0
  290. data/sub/avm-git/lib/avm/git/launcher.rb +7 -0
  291. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +19 -0
  292. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +15 -0
  293. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +27 -0
  294. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +25 -0
  295. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +31 -0
  296. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +88 -0
  297. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +36 -0
  298. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/publish.rb +14 -0
  299. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/warp.rb +32 -0
  300. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree.rb +51 -0
  301. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +22 -0
  302. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/file_formats.rb → avm-git/lib/avm/git/launcher_stereotypes.rb} +2 -2
  303. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +34 -0
  304. data/sub/avm-git/lib/avm/git/organize/repository.rb +77 -0
  305. data/sub/{avm-files/lib/avm/files/runner_with.rb → avm-git/lib/avm/git/organize.rb} +2 -2
  306. data/sub/avm-git/lib/avm/git/revision_test.rb +105 -0
  307. data/sub/avm-git/lib/avm/git/runners/base/commit.rb +102 -0
  308. data/sub/avm-git/lib/avm/git/runners/base/deploy.rb +111 -0
  309. data/sub/avm-git/lib/avm/git/runners/base/dirty_files.rb +44 -0
  310. data/sub/avm-git/lib/avm/git/runners/base/organize.rb +75 -0
  311. data/sub/avm-git/lib/avm/git/runners/base/revisions_test.rb +66 -0
  312. data/sub/avm-git/lib/avm/git/runners/base/subrepo/check.rb +48 -0
  313. data/sub/avm-git/lib/avm/git/runners/base/subrepo/clone.rb +83 -0
  314. data/sub/avm-git/lib/avm/git/runners/base/subrepo/fix.rb +76 -0
  315. data/sub/avm-git/lib/avm/git/runners/base/subrepo.rb +19 -0
  316. data/sub/avm-git/lib/avm/git/runners/base.rb +43 -0
  317. data/sub/avm-git/lib/avm/git/runners.rb +11 -0
  318. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +31 -0
  319. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +20 -0
  320. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +36 -0
  321. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +16 -0
  322. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +24 -0
  323. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +43 -0
  324. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +30 -0
  325. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +67 -0
  326. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +36 -0
  327. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +47 -0
  328. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +31 -0
  329. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +21 -0
  330. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +21 -0
  331. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +32 -0
  332. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +57 -0
  333. data/sub/avm-git/lib/avm/git/scms/git.rb +51 -0
  334. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +21 -0
  335. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +27 -0
  336. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +28 -0
  337. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +33 -0
  338. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +37 -0
  339. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +34 -0
  340. data/sub/avm-git/lib/avm/git/scms/provider.rb +21 -0
  341. data/sub/avm-git/lib/avm/git/scms.rb +11 -0
  342. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +51 -0
  343. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +89 -0
  344. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +32 -0
  345. data/sub/avm-git/lib/avm/git/subrepo_check.rb +38 -0
  346. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +60 -0
  347. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  348. data/sub/avm-git/lib/avm/git/vendor.rb +11 -0
  349. data/sub/{avm-files/lib/avm/files → avm-git/lib/avm/git}/version.rb +2 -2
  350. data/sub/{avm-files/lib/avm/files.rb → avm-git/lib/avm/git.rb} +1 -1
  351. data/sub/avm-git/locale/en.yml +6 -0
  352. data/sub/avm-git/locale/pt-BR.yml +6 -0
  353. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  354. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  355. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  356. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  357. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  358. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  359. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  360. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  361. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  362. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  363. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  364. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  365. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -0
  366. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec.rb +83 -0
  367. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_files/config.yml +5 -0
  368. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_settings.yml +6 -0
  369. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec.rb +53 -0
  370. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_files/config.yml +3 -0
  371. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_settings.yml +6 -0
  372. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec.rb +126 -0
  373. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append1/stub3.txt.template +1 -0
  374. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append2/stub4.txt +1 -0
  375. data/sub/avm-git/spec/lib/avm/git/scms/git/commit/deploy_spec.rb +92 -0
  376. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  377. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  378. data/sub/avm-git/spec/lib/avm/git/vendor/github_spec.rb +23 -0
  379. data/sub/avm-tools/README.textile +28 -0
  380. data/sub/avm-tools/avm-tools.gemspec +25 -0
  381. data/sub/avm-tools/exe/avm +6 -0
  382. data/sub/avm-tools/lib/avm/tools/core_ext.rb +3 -0
  383. data/sub/avm-tools/lib/avm/tools/rspec/helpers/runner.rb +20 -0
  384. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/source_generators.rb → avm-tools/lib/avm/tools/rspec/helpers.rb} +5 -3
  385. data/sub/avm-tools/lib/avm/tools/rspec/setup.rb +24 -0
  386. data/sub/avm-tools/lib/avm/tools/rspec.rb +11 -0
  387. data/sub/avm-tools/lib/avm/tools/runner/application/info.rb +36 -0
  388. data/sub/avm-tools/lib/avm/tools/runner/application.rb +26 -0
  389. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes/list.rb +31 -0
  390. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes.rb +16 -0
  391. data/sub/avm-tools/lib/avm/tools/runner/applications/list.rb +31 -0
  392. data/sub/avm-tools/lib/avm/tools/runner/applications.rb +16 -0
  393. data/sub/avm-tools/lib/avm/tools/runner/config/load_path.rb +52 -0
  394. data/sub/avm-tools/lib/avm/tools/runner/config.rb +17 -0
  395. data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +50 -0
  396. data/sub/avm-tools/lib/avm/tools/runner/files/rotate.rb +31 -0
  397. data/sub/avm-tools/lib/avm/tools/runner/files.rb +17 -0
  398. data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +18 -0
  399. data/sub/avm-tools/lib/avm/tools/runner/instance/data/dump.rb +20 -0
  400. data/sub/avm-tools/lib/avm/tools/runner/instance/data/load.rb +25 -0
  401. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/clear.rb +20 -0
  402. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +20 -0
  403. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +25 -0
  404. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +44 -0
  405. data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +27 -0
  406. data/sub/avm-tools/lib/avm/tools/runner/instance/entry.rb +43 -0
  407. data/sub/avm-tools/lib/avm/tools/runner/instance/info.rb +39 -0
  408. data/sub/avm-tools/lib/avm/tools/runner/instance/system.rb +65 -0
  409. data/sub/avm-tools/lib/avm/tools/runner/instance.rb +16 -0
  410. data/sub/avm-tools/lib/avm/tools/runner/launcher/instances.rb +36 -0
  411. data/sub/avm-tools/lib/avm/tools/runner/launcher/projects.rb +40 -0
  412. data/sub/avm-tools/lib/avm/tools/runner/launcher/publish.rb +53 -0
  413. data/sub/avm-tools/lib/avm/tools/runner/launcher.rb +17 -0
  414. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes/list.rb +41 -0
  415. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes.rb +16 -0
  416. data/sub/avm-tools/lib/avm/tools/runner/self/docker.rb +14 -0
  417. data/sub/avm-tools/lib/avm/tools/runner/self/registry.rb +25 -0
  418. data/sub/avm-tools/lib/avm/tools/runner/self.rb +22 -0
  419. data/sub/avm-tools/lib/avm/tools/runner/source/auto_commit.rb +72 -0
  420. data/sub/avm-tools/lib/avm/tools/runner/source/info.rb +55 -0
  421. data/sub/avm-tools/lib/avm/tools/runner/source/issue/complete.rb +86 -0
  422. data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +35 -0
  423. data/sub/avm-tools/lib/avm/tools/runner/source/issue.rb +19 -0
  424. data/sub/avm-tools/lib/avm/tools/runner/source/sub/remove.rb +22 -0
  425. data/sub/avm-tools/lib/avm/tools/runner/source/sub.rb +29 -0
  426. data/sub/avm-tools/lib/avm/tools/runner/source/subs.rb +72 -0
  427. data/sub/avm-tools/lib/avm/tools/runner/source/test.rb +93 -0
  428. data/sub/avm-tools/lib/avm/tools/runner/source/update.rb +22 -0
  429. data/sub/avm-tools/lib/avm/tools/runner/source/version_bump.rb +81 -0
  430. data/sub/avm-tools/lib/avm/tools/runner/source.rb +18 -0
  431. data/sub/avm-tools/lib/avm/tools/runner/source_generate.rb +12 -0
  432. data/sub/avm-tools/lib/avm/tools/runner.rb +27 -0
  433. data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +23 -0
  434. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +23 -0
  435. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb +59 -0
  436. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_load.rb +69 -0
  437. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_performer.rb +40 -0
  438. data/sub/avm-tools/lib/avm/tools/runner_with.rb +11 -0
  439. data/sub/avm-tools/lib/avm/tools/self.rb +23 -0
  440. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0 → avm-tools/lib/avm/tools}/version.rb +2 -2
  441. data/sub/avm-tools/lib/avm/tools.rb +9 -0
  442. data/sub/{eac_templates/lib/eac_templates/patches/object.rb → avm-tools/lib/avm.rb} +4 -1
  443. data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +72 -0
  444. data/sub/avm-tools/spec/lib/avm/tools/runner/launcher_stereotypes/list_spec.rb +17 -0
  445. data/sub/avm-tools/spec/lib/avm/tools/runner/source/issue/complete_spec.rb +49 -0
  446. data/sub/avm-tools/spec/lib/avm/tools/runner_spec.rb +15 -0
  447. metadata +463 -156
  448. data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +0 -21
  449. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb +0 -22
  450. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb +0 -20
  451. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/base.rb +0 -14
  452. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/deploy.rb +0 -13
  453. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators/base.rb +0 -12
  454. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources/base.rb +0 -17
  455. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb +0 -7
  456. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.source +0 -10
  457. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.target +0 -10
  458. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.source +0 -4
  459. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.target +0 -3
  460. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.source +0 -64
  461. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.target +0 -64
  462. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.source +0 -4
  463. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.target +0 -3
  464. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec.rb +0 -8
  465. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec_files/no_options/index.php +0 -0
  466. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/sources/base_spec.rb +0 -7
  467. data/sub/avm-eac_php_base0/template/avm/eac_php_base0/source_generators/base/index.php +0 -0
  468. data/sub/avm-files/avm-files.gemspec +0 -23
  469. data/sub/avm-files/lib/avm/files/appendable/file_content.rb +0 -31
  470. data/sub/avm-files/lib/avm/files/appendable/plain_directory.rb +0 -30
  471. data/sub/avm-files/lib/avm/files/appendable/resource_base.rb +0 -19
  472. data/sub/avm-files/lib/avm/files/appendable/tar_output_command.rb +0 -31
  473. data/sub/avm-files/lib/avm/files/appendable/templatized_directory.rb +0 -40
  474. data/sub/avm-files/lib/avm/files/appendable.rb +0 -55
  475. data/sub/avm-files/lib/avm/files/appender.rb +0 -11
  476. data/sub/avm-files/lib/avm/files/deploy.rb +0 -71
  477. data/sub/avm-files/lib/avm/files/runner_with/file_replacer.rb +0 -34
  478. data/sub/avm-files/lib/avm/files/runner_with/filesystem_renamer.rb +0 -103
  479. data/sub/avm-files/lib/avm/files/runner_with/filesystem_traverser.rb +0 -54
  480. data/sub/avm-files/lib/avm/files/text_replacer/gsub.rb +0 -24
  481. data/sub/avm-files/lib/avm/files/text_replacer.rb +0 -32
  482. data/sub/eac_templates/README.textile +0 -59
  483. data/sub/eac_templates/eac_templates.gemspec +0 -21
  484. data/sub/eac_templates/lib/eac_templates/abstract/directory.rb +0 -42
  485. data/sub/eac_templates/lib/eac_templates/abstract/file.rb +0 -25
  486. data/sub/eac_templates/lib/eac_templates/abstract/fs_object.rb +0 -94
  487. data/sub/eac_templates/lib/eac_templates/abstract/fs_object_by_pathname.rb +0 -13
  488. data/sub/eac_templates/lib/eac_templates/abstract/with_directory_file_methods.rb +0 -77
  489. data/sub/eac_templates/lib/eac_templates/core_ext.rb +0 -4
  490. data/sub/eac_templates/lib/eac_templates/errors/not_found.rb +0 -8
  491. data/sub/eac_templates/lib/eac_templates/errors/type_mismatch.rb +0 -8
  492. data/sub/eac_templates/lib/eac_templates/interface_methods.rb +0 -12
  493. data/sub/eac_templates/lib/eac_templates/modules/ancestor/directory.rb +0 -37
  494. data/sub/eac_templates/lib/eac_templates/modules/ancestor/file.rb +0 -64
  495. data/sub/eac_templates/lib/eac_templates/modules/ancestor/fs_object.rb +0 -26
  496. data/sub/eac_templates/lib/eac_templates/modules/ancestor.rb +0 -37
  497. data/sub/eac_templates/lib/eac_templates/modules/base/directory.rb +0 -72
  498. data/sub/eac_templates/lib/eac_templates/modules/base/file.rb +0 -31
  499. data/sub/eac_templates/lib/eac_templates/modules/base/fs_object.rb +0 -16
  500. data/sub/eac_templates/lib/eac_templates/modules/base.rb +0 -93
  501. data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +0 -9
  502. data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +0 -9
  503. data/sub/eac_templates/lib/eac_templates/patches/module.rb +0 -4
  504. data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +0 -9
  505. data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +0 -9
  506. data/sub/eac_templates/lib/eac_templates/patches.rb +0 -4
  507. data/sub/eac_templates/lib/eac_templates/sources/directory.rb +0 -37
  508. data/sub/eac_templates/lib/eac_templates/sources/file.rb +0 -13
  509. data/sub/eac_templates/lib/eac_templates/sources/from_all_gems.rb +0 -4
  510. data/sub/eac_templates/lib/eac_templates/sources/from_gem.rb +0 -37
  511. data/sub/eac_templates/lib/eac_templates/sources/fs_object.rb +0 -58
  512. data/sub/eac_templates/lib/eac_templates/sources/internal_set.rb +0 -27
  513. data/sub/eac_templates/lib/eac_templates/sources/set.rb +0 -61
  514. data/sub/eac_templates/lib/eac_templates/sources/single.rb +0 -34
  515. data/sub/eac_templates/lib/eac_templates/variables/content.rb +0 -52
  516. data/sub/eac_templates/lib/eac_templates/variables/directory.rb +0 -48
  517. data/sub/eac_templates/lib/eac_templates/variables/file.rb +0 -26
  518. data/sub/eac_templates/lib/eac_templates/variables/fs_object.rb +0 -65
  519. data/sub/eac_templates/lib/eac_templates/variables/not_found_error.rb +0 -7
  520. data/sub/eac_templates/lib/eac_templates/variables/providers/base.rb +0 -24
  521. data/sub/eac_templates/lib/eac_templates/variables/providers/config_reader.rb +0 -29
  522. data/sub/eac_templates/lib/eac_templates/variables/providers/entries_reader.rb +0 -25
  523. data/sub/eac_templates/lib/eac_templates/variables/providers/generic.rb +0 -25
  524. data/sub/eac_templates/lib/eac_templates/variables/providers/hash.rb +0 -29
  525. data/sub/eac_templates/lib/eac_templates/variables/providers.rb +0 -25
  526. data/sub/eac_templates/lib/eac_templates/variables.rb +0 -9
  527. data/sub/eac_templates/lib/eac_templates/version.rb +0 -5
  528. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec.rb +0 -28
  529. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_a +0 -1
  530. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/a/a_b +0 -1
  531. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/b +0 -1
  532. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/a_module/c +0 -1
  533. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/a/a_d +0 -1
  534. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/c +0 -1
  535. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/prepended_module/d +0 -1
  536. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_a +0 -1
  537. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_b +0 -1
  538. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_c +0 -1
  539. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/a/a_d +0 -1
  540. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/b +0 -1
  541. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/c +0 -1
  542. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/sub_class/d +0 -1
  543. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_a +0 -1
  544. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/a/a_b +0 -1
  545. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/b +0 -1
  546. data/sub/eac_templates/spec/lib/eac_templates/modules/base/apply_spec_files/super_class/c +0 -1
  547. data/sub/eac_templates/spec/lib/eac_templates/modules/base/child_spec.rb +0 -110
  548. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec.rb +0 -26
  549. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec_files/path/my_stub_with_template +0 -1
  550. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec.rb +0 -42
  551. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file1.template +0 -1
  552. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file2 +0 -1
  553. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path2/subdir1/file3.template +0 -1
  554. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec.rb +0 -35
  555. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/expected_content +0 -2
  556. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/source.template +0 -2
  557. data/sub/eac_templates/spec/spec_helper/modules_resources_context.rb +0 -45
  558. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/a/a_a +0 -1
  559. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/a_module/b +0 -1
  560. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/prepended_module/a/a_d.template +0 -1
  561. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/sub_class/a/a_c +0 -1
  562. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/a/a_b +0 -1
  563. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path1/super_class/b +0 -1
  564. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/a/a_b +0 -1
  565. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/b +0 -1
  566. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/a_module/c +0 -1
  567. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/c +0 -1
  568. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/prepended_module/d.template +0 -1
  569. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/a/a_d +0 -1
  570. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/sub_class/b +0 -1
  571. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/a/a_b +0 -1
  572. data/sub/eac_templates/spec/spec_helper/modules_resources_context_files/path2/super_class/b +0 -1
  573. /data/sub/{eac_templates → avm}/Gemfile +0 -0
  574. /data/sub/{eac_templates → avm}/spec/rubocop_spec.rb +0 -0
  575. /data/sub/{avm-eac_php_base0 → avm-git}/Gemfile +0 -0
  576. /data/sub/{avm-eac_php_base0 → avm-git}/spec/rubocop_spec.rb +0 -0
  577. /data/sub/{avm-eac_php_base0 → avm-git}/spec/spec_helper.rb +0 -0
  578. /data/sub/{avm-files → avm-tools}/Gemfile +0 -0
  579. /data/sub/{avm-files → avm-tools}/spec/rubocop_spec.rb +0 -0
  580. /data/sub/{avm-files → avm-tools}/spec/spec_helper.rb +0 -0
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/publish_base'
4
+
5
+ module Avm
6
+ module Git
7
+ module LauncherStereotypes
8
+ class GitSubtree
9
+ class Publish < ::Avm::Git::Launcher::PublishBase
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher/warp_base'
4
+ require 'avm/git/launcher/sub_warp_base'
5
+
6
+ module Avm
7
+ module Git
8
+ module LauncherStereotypes
9
+ class GitSubtree
10
+ class Warp < ::Avm::Git::Launcher::WarpBase
11
+ include ::Avm::Git::Launcher::SubWarpBase
12
+
13
+ private
14
+
15
+ def current_ref
16
+ instance.cache_key("git_subtree.parent.#{cache_git.git.object('HEAD').sha}") do
17
+ cache_git.subtree_split(to_parent_git_path)
18
+ end
19
+ end
20
+
21
+ def source_instance
22
+ parent_instance
23
+ end
24
+
25
+ def source_remote_name
26
+ instance.project_name
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/stereotype'
4
+ require 'avm/git/launcher_stereotypes/git'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module Git
9
+ module LauncherStereotypes
10
+ class GitSubtree
11
+ require_sub __FILE__
12
+ include Avm::Launcher::Stereotype
13
+
14
+ class << self
15
+ def match?(path)
16
+ return false if other_git_stereotype?(path)
17
+ return false unless other_nogit_stereotype?(path)
18
+
19
+ parent = parent_git(path.parent_path)
20
+ return false unless parent
21
+
22
+ ::Git.open(parent.real).remote(path.real.basename).url ? true : false
23
+ end
24
+
25
+ def color
26
+ :green
27
+ end
28
+
29
+ def parent_git(parent_path)
30
+ return nil unless parent_path
31
+
32
+ if ::Avm::Git::LauncherStereotypes::Git.match?(parent_path)
33
+ parent_path
34
+ else
35
+ parent_git(parent_path.parent_path)
36
+ end
37
+ end
38
+
39
+ def other_git_stereotype?(path)
40
+ ::Avm::Git::LauncherStereotypes::Git.match?(path) ||
41
+ ::Avm::Git::LauncherStereotypes::GitSubrepo.match?(path)
42
+ end
43
+
44
+ def other_nogit_stereotype?(path)
45
+ Avm::Launcher::Stereotype.nogit_stereotypes.any? { |s| s.match?(path) }
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/launcher_stereotypes/git'
4
+ require 'avm/git/launcher_stereotypes/git_subrepo'
5
+ require 'avm/git/launcher_stereotypes/git_subtree'
6
+ require 'eac_ruby_utils/core_ext'
7
+
8
+ module Avm
9
+ module Git
10
+ module LauncherStereotypes
11
+ class Provider
12
+ STEREOTYPES = [::Avm::Git::LauncherStereotypes::Git,
13
+ ::Avm::Git::LauncherStereotypes::GitSubrepo,
14
+ ::Avm::Git::LauncherStereotypes::GitSubtree].freeze
15
+
16
+ def all
17
+ STEREOTYPES
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,8 +3,8 @@
3
3
  require 'eac_ruby_utils/core_ext'
4
4
 
5
5
  module Avm
6
- module EacPhpBase0
7
- module FileFormats
6
+ module Git
7
+ module LauncherStereotypes
8
8
  require_sub __FILE__
9
9
  end
10
10
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Git
7
+ module Organize
8
+ class ReferenceUpdate
9
+ enable_listable
10
+ lists.add_symbol :operation, :remove
11
+
12
+ common_constructor :repository, :reference, :operation
13
+
14
+ def run_operation
15
+ send("run_operation_#{operation}")
16
+ end
17
+
18
+ def to_s
19
+ "#{reference} [#{operation}]"
20
+ end
21
+
22
+ private
23
+
24
+ def reference_pathname
25
+ repository.refs_root.join(reference)
26
+ end
27
+
28
+ def run_operation_remove
29
+ reference_pathname.unlink
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/organize/reference_update'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Organize
9
+ class Repository
10
+ enable_simple_cache
11
+ common_constructor :eac_git_local
12
+
13
+ def collected_references
14
+ @collected_references || []
15
+ end
16
+
17
+ def collect_subrepos
18
+ collect_references_with_pattern(
19
+ %r{\Asubrepo/},
20
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
21
+ )
22
+ collect_references_with_pattern(
23
+ %r{\Aheads/subrepo/},
24
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
25
+ )
26
+ end
27
+
28
+ def collect_originals
29
+ collect_references_with_pattern(
30
+ %r{\Aoriginal/},
31
+ ::Avm::Git::Organize::ReferenceUpdate::OPERATION_REMOVE
32
+ )
33
+ end
34
+
35
+ def all_branches
36
+ eac_git_local.execute!
37
+ end
38
+
39
+ delegate :to_s, to: :eac_git_local
40
+
41
+ private
42
+
43
+ def all_references
44
+ ::Pathname.glob("#{refs_root}/**/*").select(&:file?)
45
+ .map { |p| p.relative_path_from(refs_root).to_path }
46
+ end
47
+
48
+ def reference_update_by_ref(reference)
49
+ collected_references.find { |ru| ru.reference == reference }
50
+ end
51
+
52
+ def collect_reference(reference, operation)
53
+ new_ru = ::Avm::Git::Organize::ReferenceUpdate.new(self, reference, operation)
54
+ reference_update_by_ref(new_ru.reference).if_present do |ru_found|
55
+ raise "Reference #{new_ru} already added (#{ru_found})"
56
+ end
57
+ @collected_references ||= []
58
+ @collected_references << new_ru
59
+ end
60
+
61
+ def collect_references_with_pattern(pattern, operation)
62
+ references_with_pattern(pattern).each do |reference|
63
+ collect_reference(reference, operation)
64
+ end
65
+ end
66
+
67
+ def references_with_pattern(pattern)
68
+ all_references.select { |reference| pattern.if_match(reference, false) }
69
+ end
70
+
71
+ def refs_root_uncached
72
+ eac_git_local.root_path / '.git' / 'refs'
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -3,8 +3,8 @@
3
3
  require 'eac_ruby_utils/core_ext'
4
4
 
5
5
  module Avm
6
- module Files
7
- module RunnerWith
6
+ module Git
7
+ module Organize
8
8
  require_sub __FILE__
9
9
  end
10
10
  end
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_ruby_utils/ruby'
5
+
6
+ module Avm
7
+ module Git
8
+ class RevisionTest
9
+ enable_simple_cache
10
+ enable_speaker
11
+ common_constructor :git, :sha1, :options
12
+
13
+ def banner
14
+ infov 'Revision to test', sha1
15
+ ::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new(err_line_prefix: ' ')) do
16
+ revision_banner
17
+ end
18
+ end
19
+
20
+ def successful_label
21
+ successful?.to_s.send((successful? ? :green : :red))
22
+ end
23
+
24
+ def to_s
25
+ sha1
26
+ end
27
+
28
+ def successful?
29
+ successful
30
+ end
31
+
32
+ private
33
+
34
+ def checkout_revision
35
+ infom 'Checking out revision...'
36
+ git.execute!('checkout', sha1)
37
+ end
38
+
39
+ def commit_uncached
40
+ ::Avm::Git::Commit.new(git, sha1)
41
+ end
42
+
43
+ def git_absolute_path
44
+ ::File.expand_path(git.to_s)
45
+ end
46
+
47
+ def revision_banner
48
+ infov '* Subject', commit.subject
49
+ infov '* Success?', successful_label
50
+ infov '* STDOUT', stdout_cache.content_path
51
+ infov '* STDERR', stderr_cache.content_path
52
+ end
53
+
54
+ def root_cache
55
+ fs_cache.child(git_absolute_path.parameterize, sha1,
56
+ options.fetch(:test_command).to_s.parameterize)
57
+ end
58
+
59
+ def run_test
60
+ infom "Running test command \"#{::Shellwords.join(test_command_args)}\" " \
61
+ "on \"#{git_absolute_path}\"..."
62
+ result = ::EacRubyUtils::Ruby.on_clean_environment { test_command.execute }
63
+ infom 'Test done'
64
+ write_result_cache(result)
65
+ end
66
+
67
+ def stdout_cache
68
+ root_cache.child('stdout')
69
+ end
70
+
71
+ def stderr_cache
72
+ root_cache.child('stderr')
73
+ end
74
+
75
+ def successful_cache
76
+ root_cache.child('successful')
77
+ end
78
+
79
+ def successful_uncached
80
+ if options.fetch(:no_cache) || !successful_cache.stored?
81
+ checkout_revision
82
+ run_test
83
+ end
84
+ successful_cache.read == 'true'
85
+ end
86
+
87
+ def test_command
88
+ ::EacRubyUtils::Envs.local.command(*test_command_args).chdir(git.to_s)
89
+ end
90
+
91
+ def test_command_args
92
+ r = ::Shellwords.split(options.fetch(:test_command).to_s)
93
+ return r if r.any?
94
+
95
+ raise 'No command found'
96
+ end
97
+
98
+ def write_result_cache(result)
99
+ stdout_cache.write(result[:stdout])
100
+ stderr_cache.write(result[:stderr])
101
+ successful_cache.write(result[:exit_code].zero? ? 'true' : 'false')
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/speaker'
4
+ require 'eac_ruby_utils/simple_cache'
5
+ require 'avm/git/launcher/base'
6
+ require 'filesize'
7
+ require 'avm/git/commit'
8
+
9
+ module Avm
10
+ module Git
11
+ module Runners
12
+ class Base
13
+ class Commit
14
+ runner_with :help do
15
+ desc 'Mostra informações de um commit.'
16
+ bool_opt '-f', '--files', 'Mostra os arquivos.'
17
+ bool_opt '-s', '--size', 'Mostra o tamanho de arquivos.'
18
+ pos_arg :ref
19
+ end
20
+
21
+ def run
22
+ input_banner
23
+ validate
24
+ main_info_banner
25
+ files_banner
26
+ size_banner
27
+ end
28
+
29
+ private
30
+
31
+ def input_banner
32
+ infov 'Repository', git
33
+ infov 'Reference', reference
34
+ end
35
+
36
+ def validate
37
+ return if reference_id.present?
38
+
39
+ fatal_error "Object ID not found for reference \"#{reference}\""
40
+ end
41
+
42
+ def main_info_banner
43
+ infov 'Reference ID', reference_id
44
+ infov 'Subject', commit.subject
45
+ infov 'Author', commit.author_all
46
+ infov 'Commiter', commit.commiter_all
47
+ infov 'Files', commit.files.count
48
+ end
49
+
50
+ def size_banner
51
+ return unless show_size?
52
+
53
+ infov 'Total files size', bytes_size(commit.files_size)
54
+ end
55
+
56
+ def files_banner
57
+ return unless parsed.files?
58
+
59
+ commit.files.each do |file|
60
+ infov " #{file.path}", file_value(file)
61
+ end
62
+ end
63
+
64
+ def file_value(file)
65
+ s = file.status
66
+ s += ", #{bytes_size(file.dst_size)}" if show_size?
67
+ s
68
+ end
69
+
70
+ def reference_id
71
+ git.rev_parse(reference)
72
+ end
73
+
74
+ def reference
75
+ parsed.ref
76
+ end
77
+
78
+ def git_uncached
79
+ ::Avm::Git::Launcher::Base.new(runner_context.call(:repository_path))
80
+ end
81
+
82
+ def commit_uncached
83
+ ::Avm::Git::Commit.new(git, reference_id)
84
+ end
85
+
86
+ def human_files_size
87
+ ::Filesize.from("#{commit.files_size} B").pretty
88
+ end
89
+
90
+ def bytes_size(size)
91
+ b = "#{size} B"
92
+ "#{::Filesize.from(b).pretty} (#{b})"
93
+ end
94
+
95
+ def show_size?
96
+ parsed.size?
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/scms/git'
4
+ require 'eac_config/node'
5
+
6
+ module Avm
7
+ module Git
8
+ module Runners
9
+ class Base
10
+ class Deploy
11
+ DEFAULT_REFERENCE = 'HEAD'
12
+
13
+ runner_with :help do
14
+ desc 'Deploy a Git revision to a location (Local or remote).'
15
+ arg_opt '-a', '--append-dirs', 'Append directories to deploy (List separated by ":").'
16
+ arg_opt '-i', '--instance', 'Read entries from instance with id=<instance-id>.'
17
+ arg_opt '-r', '--reference', "Reference (default: #{DEFAULT_REFERENCE})."
18
+ pos_arg :target_url, optional: true
19
+ end
20
+
21
+ def run
22
+ input_banner
23
+ validate
24
+ main_info_banner
25
+ deploy
26
+ success 'Done'
27
+ end
28
+
29
+ private
30
+
31
+ def input_banner
32
+ infov 'Repository', git
33
+ infov 'Reference', reference
34
+ infov 'Instance ID', instance_id.if_present('- BLANK -')
35
+ infov 'Appended directories', appended_directories
36
+ infov 'Target URL', target_url
37
+ end
38
+
39
+ def validate
40
+ if reference_sha1.blank?
41
+ fatal_error "Object ID not found for reference \"#{reference}\""
42
+ end
43
+ fatal_error 'Nor <target-url> nor --instance was setted' if target_url.blank?
44
+ end
45
+
46
+ def main_info_banner
47
+ infov 'Reference SHA1', reference_sha1
48
+ end
49
+
50
+ def reference_sha1_uncached
51
+ git.git_repo.rev_parse(reference)
52
+ end
53
+
54
+ def reference
55
+ parsed.reference || DEFAULT_REFERENCE
56
+ end
57
+
58
+ def git_uncached
59
+ ::Avm::Git::Scms::Git.new(git_repository_path)
60
+ end
61
+
62
+ def git_repository_path
63
+ if runner_context.call(:repository_path) || dev_instance_fs_path.blank?
64
+ return runner_context.call(:repository_path)
65
+ end
66
+
67
+ dev_instance_fs_path
68
+ end
69
+
70
+ def dev_instance_fs_path
71
+ instance.if_present do |v|
72
+ v.application.instance('dev').read_entry_optional(
73
+ ::Avm::Instances::EntryKeys::INSTALL_PATH
74
+ )
75
+ end
76
+ end
77
+
78
+ def deploy
79
+ git.commit(reference_sha1)
80
+ .deploy_to_url(target_url)
81
+ .append_templatized_directories(appended_directories)
82
+ .variables_source_set(variables_source)
83
+ .run
84
+ end
85
+
86
+ def target_url
87
+ parsed.target_url.if_present { |v| return v }
88
+ instance.if_present { |v| return v.install_url }
89
+ nil
90
+ end
91
+
92
+ def variables_source
93
+ instance || ::EacConfig::Node.context.current
94
+ end
95
+
96
+ def instance_uncached
97
+ instance_id.if_present { |v| ::Avm::Instances::Base.by_id(v) }
98
+ end
99
+
100
+ def instance_id
101
+ parsed.instance
102
+ end
103
+
104
+ def appended_directories
105
+ parsed.append_dirs.to_s.split(':')
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module Git
7
+ module Runners
8
+ class Base
9
+ class DirtyFiles
10
+ DEFAULT_FORMAT = '%p'
11
+ FIELDS = {
12
+ i: :index, w: :worktree, p: :path, a: :absolute_path
13
+ }.transform_keys { |k| "%#{k}" }
14
+
15
+ runner_with :help do
16
+ desc 'Lists dirty files in Git repository.'
17
+ arg_opt '-f', '--format',
18
+ "Format of each line (See \"Format fields\") [default: #{DEFAULT_FORMAT}]."
19
+ end
20
+
21
+ def help_extra_text
22
+ "Format fields:\n" + FIELDS.map { |k, v| " #{k} => #{v}" }.join("\n") # rubocop:disable Style/StringConcatenation
23
+ end
24
+
25
+ def run
26
+ runner_context.call(:git).dirty_files.each do |file|
27
+ out("#{format_file(file)}\n")
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def format
34
+ parsed.format || DEFAULT_FORMAT
35
+ end
36
+
37
+ def format_file(file)
38
+ FIELDS.inject(format) { |a, e| a.gsub(e.first, file.send(e.last)) }
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/organize/repository'
4
+ require 'eac_cli/default_runner'
5
+
6
+ module Avm
7
+ module Git
8
+ module Runners
9
+ class Base
10
+ class Organize
11
+ runner_with :help do
12
+ desc 'Organize branches.'
13
+ bool_opt '-a', '--all', 'Run all organizations.'
14
+ bool_opt '-n', '--no', 'Do not run operations.'
15
+ bool_opt '-o', '--originals', 'Remove refs/original branches.'
16
+ bool_opt '-s', '--subrepos', 'Remove git-subrepo branches.'
17
+ bool_opt '-y', '--yes', 'Run operations without confirmation.'
18
+ end
19
+
20
+ def run
21
+ start_banner
22
+ collect_references
23
+ after_collect_banner
24
+ run_operations
25
+ end
26
+
27
+ private
28
+
29
+ def after_collect_banner
30
+ infov 'Collected references', repository.collected_references.count
31
+ repository.collected_references.each do |ru|
32
+ infov " * #{ru.reference}", ru.operation
33
+ end
34
+ end
35
+
36
+ def collect?(type)
37
+ parsed.fetch(type) || parsed.all?
38
+ end
39
+
40
+ def collect_references
41
+ %w[subrepos originals].each do |type|
42
+ repository.send("collect_#{type}") if collect?(type)
43
+ end
44
+ end
45
+
46
+ def run_operations
47
+ return warn('No operations to run (Run with --help to see options)') if
48
+ repository.collected_references.empty?
49
+ return unless run_operations?
50
+
51
+ repository.collected_references.each do |ru|
52
+ info "Doing operation #{ru}..."
53
+ ru.run_operation
54
+ end
55
+ end
56
+
57
+ def run_operations?
58
+ return true if parsed.yes?
59
+ return false if parsed.no?
60
+
61
+ input('Confirm operations?', bool: true)
62
+ end
63
+
64
+ def repository_uncached
65
+ ::Avm::Git::Organize::Repository.new(runner_context.call(:git).eac_git)
66
+ end
67
+
68
+ def start_banner
69
+ infov 'Repository', repository
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end