eac_tools 0.111.1 → 0.112.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 (374) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +37 -22
  3. data/eac_tools.gemspec +3 -3
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm/Gemfile +8 -0
  6. data/sub/avm/avm.gemspec +27 -0
  7. data/sub/avm/lib/avm/application_scms/base.rb +37 -0
  8. data/sub/avm/lib/avm/application_stereotypes/base.rb +29 -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 +31 -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/data/callbacks.rb +36 -0
  19. data/sub/avm/lib/avm/data/clearer.rb +17 -0
  20. data/sub/avm/lib/avm/data/dumper.rb +137 -0
  21. data/sub/avm/lib/avm/data/loader.rb +23 -0
  22. data/sub/avm/lib/avm/data/package/base_performer.rb +36 -0
  23. data/sub/avm/lib/avm/data/package/build_directory.rb +25 -0
  24. data/sub/avm/lib/avm/data/package/clear.rb +19 -0
  25. data/sub/avm/lib/avm/data/package/dump.rb +42 -0
  26. data/sub/avm/lib/avm/data/package/load.rb +33 -0
  27. data/sub/avm/lib/avm/data/package.rb +64 -0
  28. data/sub/avm/lib/avm/data/performer.rb +45 -0
  29. data/sub/avm/lib/avm/data/rotate.rb +106 -0
  30. data/sub/avm/lib/avm/data/unit.rb +44 -0
  31. data/sub/avm/lib/avm/data/unit_with_commands.rb +48 -0
  32. data/sub/avm/lib/avm/docker/container.rb +47 -0
  33. data/sub/avm/lib/avm/docker/image.rb +70 -0
  34. data/sub/avm/lib/avm/docker/runner.rb +129 -0
  35. data/sub/avm/lib/avm/entries/auto_values/entry.rb +36 -0
  36. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +21 -0
  37. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +42 -0
  38. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +24 -0
  39. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +35 -0
  40. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +27 -0
  41. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +40 -0
  42. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +40 -0
  43. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +59 -0
  44. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +16 -0
  45. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +22 -0
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +23 -0
  47. data/sub/avm/lib/avm/entries/base.rb +53 -0
  48. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +21 -0
  49. data/sub/avm/lib/avm/entries/entry.rb +69 -0
  50. data/sub/avm/lib/avm/entries/jobs/base.rb +58 -0
  51. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +48 -0
  52. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +13 -0
  53. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +13 -0
  54. data/sub/avm/lib/avm/entries/keys_constants_set.rb +41 -0
  55. data/sub/avm/lib/avm/entries/uri_builder.rb +87 -0
  56. data/sub/avm/lib/avm/executables.rb +21 -0
  57. data/sub/avm/lib/avm/file_formats/base.rb +34 -0
  58. data/sub/avm/lib/avm/file_formats/file_result.rb +11 -0
  59. data/sub/avm/lib/avm/file_formats/search_formatter.rb +83 -0
  60. data/sub/avm/lib/avm/file_formats/unknown.rb +15 -0
  61. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +72 -0
  62. data/sub/avm/lib/avm/files/appendable/file_content.rb +28 -0
  63. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +27 -0
  64. data/sub/avm/lib/avm/files/appendable/resource_base.rb +17 -0
  65. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +27 -0
  66. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +36 -0
  67. data/sub/avm/lib/avm/files/appendable.rb +51 -0
  68. data/sub/avm/lib/avm/files/appender.rb +9 -0
  69. data/sub/avm/lib/avm/files/deploy.rb +70 -0
  70. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +22 -0
  71. data/sub/avm/lib/avm/files/text_replacer.rb +29 -0
  72. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +28 -0
  73. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +60 -0
  74. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +31 -0
  75. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +16 -0
  76. data/sub/avm/lib/avm/instances/base/auto_values.rb +12 -0
  77. data/sub/avm/lib/avm/instances/base/dockerizable.rb +41 -0
  78. data/sub/avm/lib/avm/instances/base/entry_keys.rb +25 -0
  79. data/sub/avm/lib/avm/instances/base/install.rb +28 -0
  80. data/sub/avm/lib/avm/instances/base/processes.rb +25 -0
  81. data/sub/avm/lib/avm/instances/base/production.rb +33 -0
  82. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +23 -0
  83. data/sub/avm/lib/avm/instances/base/web.rb +15 -0
  84. data/sub/avm/lib/avm/instances/base.rb +70 -0
  85. data/sub/avm/lib/avm/instances/data/files_unit.rb +57 -0
  86. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +10 -0
  87. data/sub/avm/lib/avm/instances/data/package.rb +25 -0
  88. data/sub/avm/lib/avm/instances/data/unit.rb +36 -0
  89. data/sub/avm/lib/avm/instances/docker_image.rb +13 -0
  90. data/sub/avm/lib/avm/instances/entry_keys.rb +39 -0
  91. data/sub/avm/lib/avm/instances/ids.rb +28 -0
  92. data/sub/avm/lib/avm/instances/process.rb +29 -0
  93. data/sub/avm/lib/avm/instances/runner.rb +34 -0
  94. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +44 -0
  95. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +51 -0
  96. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +53 -0
  97. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +34 -0
  98. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +32 -0
  99. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +74 -0
  100. data/sub/avm/lib/avm/launcher/context/settings.rb +51 -0
  101. data/sub/avm/lib/avm/launcher/context.rb +83 -0
  102. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  103. data/sub/avm/lib/avm/launcher/errors/non_project.rb +13 -0
  104. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +43 -0
  105. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +53 -0
  106. data/sub/avm/lib/avm/launcher/instances/base.rb +77 -0
  107. data/sub/avm/lib/avm/launcher/instances/error.rb +10 -0
  108. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +43 -0
  109. data/sub/avm/lib/avm/launcher/instances/settings.rb +24 -0
  110. data/sub/avm/lib/avm/launcher/paths/logical.rb +76 -0
  111. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  112. data/sub/avm/lib/avm/launcher/project.rb +15 -0
  113. data/sub/avm/lib/avm/launcher/publish/base.rb +44 -0
  114. data/sub/avm/lib/avm/launcher/publish/check_result.rb +64 -0
  115. data/sub/avm/lib/avm/launcher/stereotype.rb +63 -0
  116. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +44 -0
  117. data/sub/avm/lib/avm/path_string.rb +27 -0
  118. data/sub/avm/lib/avm/registry/application_scms.rb +13 -0
  119. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +45 -0
  120. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +30 -0
  121. data/sub/avm/lib/avm/registry/application_stereotypes.rb +42 -0
  122. data/sub/avm/lib/avm/registry/applications.rb +35 -0
  123. data/sub/avm/lib/avm/registry/base.rb +26 -0
  124. data/sub/avm/lib/avm/registry/config_objects.rb +15 -0
  125. data/sub/avm/lib/avm/registry/detection_error.rb +8 -0
  126. data/sub/avm/lib/avm/registry/file_formats.rb +17 -0
  127. data/sub/avm/lib/avm/registry/from_gems.rb +67 -0
  128. data/sub/avm/lib/avm/registry/instances.rb +13 -0
  129. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +8 -0
  130. data/sub/avm/lib/avm/registry/runners.rb +8 -0
  131. data/sub/avm/lib/avm/registry/scms.rb +8 -0
  132. data/sub/avm/lib/avm/registry/source_generators.rb +14 -0
  133. data/sub/avm/lib/avm/registry/sources.rb +38 -0
  134. data/sub/avm/lib/avm/registry/with_path/cache.rb +28 -0
  135. data/sub/avm/lib/avm/registry/with_path.rb +44 -0
  136. data/sub/avm/lib/avm/registry.rb +31 -0
  137. data/sub/avm/lib/avm/result.rb +80 -0
  138. data/sub/avm/lib/avm/rspec/launcher_controller.rb +91 -0
  139. data/sub/avm/lib/avm/rspec/setup/launcher.rb +18 -0
  140. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +20 -0
  141. data/sub/avm/lib/avm/rspec/setup.rb +32 -0
  142. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +13 -0
  143. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +28 -0
  144. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +23 -0
  145. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +19 -0
  146. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +9 -0
  147. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +12 -0
  148. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +9 -0
  149. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +13 -0
  150. data/sub/avm/lib/avm/runner_with/file_replacer.rb +28 -0
  151. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +99 -0
  152. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +49 -0
  153. data/sub/avm/lib/avm/runners/base.rb +25 -0
  154. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +47 -0
  155. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +79 -0
  156. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +37 -0
  157. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +17 -0
  158. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +38 -0
  159. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +21 -0
  160. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +29 -0
  161. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +19 -0
  162. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +32 -0
  163. data/sub/avm/lib/avm/scms/base/branches.rb +20 -0
  164. data/sub/avm/lib/avm/scms/base/commits.rb +32 -0
  165. data/sub/avm/lib/avm/scms/base/milestones.rb +19 -0
  166. data/sub/avm/lib/avm/scms/base/remotes.rb +20 -0
  167. data/sub/avm/lib/avm/scms/base.rb +59 -0
  168. data/sub/avm/lib/avm/scms/branch.rb +24 -0
  169. data/sub/avm/lib/avm/scms/changed_file.rb +46 -0
  170. data/sub/avm/lib/avm/scms/commit.rb +64 -0
  171. data/sub/avm/lib/avm/scms/commit_info.rb +37 -0
  172. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  173. data/sub/avm/lib/avm/scms/interval.rb +16 -0
  174. data/sub/avm/lib/avm/scms/null/commit.rb +11 -0
  175. data/sub/avm/lib/avm/scms/null.rb +16 -0
  176. data/sub/avm/lib/avm/scms/remote.rb +9 -0
  177. data/sub/avm/lib/avm/self/docker_image.rb +11 -0
  178. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  179. data/sub/avm/lib/avm/self/instance.rb +27 -0
  180. data/sub/avm/lib/avm/source_generators/base.rb +69 -0
  181. data/sub/avm/lib/avm/source_generators/option.rb +11 -0
  182. data/sub/avm/lib/avm/source_generators/option_list.rb +29 -0
  183. data/sub/avm/lib/avm/source_generators/runner.rb +55 -0
  184. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +29 -0
  185. data/sub/avm/lib/avm/sources/base/application.rb +32 -0
  186. data/sub/avm/lib/avm/sources/base/configuration.rb +89 -0
  187. data/sub/avm/lib/avm/sources/base/instance.rb +13 -0
  188. data/sub/avm/lib/avm/sources/base/locale.rb +30 -0
  189. data/sub/avm/lib/avm/sources/base/organizational.rb +30 -0
  190. data/sub/avm/lib/avm/sources/base/parent.rb +26 -0
  191. data/sub/avm/lib/avm/sources/base/stereotype.rb +16 -0
  192. data/sub/avm/lib/avm/sources/base/sub/remove.rb +36 -0
  193. data/sub/avm/lib/avm/sources/base/sub.rb +23 -0
  194. data/sub/avm/lib/avm/sources/base/subs.rb +63 -0
  195. data/sub/avm/lib/avm/sources/base/subs_paths.rb +30 -0
  196. data/sub/avm/lib/avm/sources/base/testing.rb +67 -0
  197. data/sub/avm/lib/avm/sources/base/update.rb +37 -0
  198. data/sub/avm/lib/avm/sources/base/update_sub.rb +55 -0
  199. data/sub/avm/lib/avm/sources/base/update_subs.rb +17 -0
  200. data/sub/avm/lib/avm/sources/base/version_bump.rb +26 -0
  201. data/sub/avm/lib/avm/sources/base.rb +56 -0
  202. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  203. data/sub/avm/lib/avm/sources/configuration.rb +57 -0
  204. data/sub/avm/lib/avm/sources/issues/deliver.rb +51 -0
  205. data/sub/avm/lib/avm/sources/runner.rb +38 -0
  206. data/sub/avm/lib/avm/sources/tests/builder.rb +91 -0
  207. data/sub/avm/lib/avm/sources/tests/performer.rb +32 -0
  208. data/sub/avm/lib/avm/sources/tests/result.rb +13 -0
  209. data/sub/avm/lib/avm/sources/tests/single.rb +71 -0
  210. data/sub/avm/lib/avm/sources/update_error.rb +8 -0
  211. data/sub/avm/lib/avm/sync.rb +90 -0
  212. data/sub/avm/lib/avm/version.rb +5 -0
  213. data/sub/avm/lib/avm/version_number.rb +45 -0
  214. data/sub/avm/lib/avm/with/application_stereotype.rb +29 -0
  215. data/sub/avm/lib/avm/with/extra_subcommands.rb +41 -0
  216. data/sub/avm/lib/avm.rb +18 -0
  217. data/sub/avm/locale/en.yml +6 -0
  218. data/sub/avm/locale/pt-BR.yml +6 -0
  219. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +29 -0
  220. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +12 -0
  221. data/sub/avm/spec/lib/avm/applications/base_spec.rb +21 -0
  222. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +3 -0
  223. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +9 -0
  224. data/sub/avm/spec/lib/avm/instances/base/entries_spec.rb +78 -0
  225. data/sub/avm/spec/lib/avm/instances/base/entries_spec_files/config.yml +50 -0
  226. data/sub/avm/spec/lib/avm/instances/base_spec.rb +29 -0
  227. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +98 -0
  228. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +5 -0
  229. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +9 -0
  230. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +39 -0
  231. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +5 -0
  232. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +5 -0
  233. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +26 -0
  234. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +20 -0
  235. data/sub/avm/spec/lib/avm/scms/base_spec.rb +5 -0
  236. data/sub/avm/spec/lib/avm/sources/base_spec.rb +5 -0
  237. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +7 -0
  238. data/sub/avm/spec/meta/rubocop_spec.rb +3 -0
  239. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +6 -0
  240. data/sub/avm/spec/spec_helper.rb +7 -0
  241. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +29 -0
  242. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools/version.rb +7 -0
  243. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  244. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  245. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  246. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +16 -0
  247. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +1 -0
  248. data/sub/avm/template/avm/self/docker_image/Dockerfile +17 -0
  249. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +12 -0
  250. data/sub/avm-eac_webapp_base0/Gemfile +8 -0
  251. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +24 -0
  252. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +23 -0
  253. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +44 -0
  254. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +17 -0
  255. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +42 -0
  256. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +19 -0
  257. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +23 -0
  258. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +17 -0
  259. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +23 -0
  260. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_base.rb +28 -0
  261. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_host.rb +72 -0
  262. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_path.rb +37 -0
  263. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/apache.rb +42 -0
  264. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy.rb +24 -0
  265. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy_info.rb +27 -0
  266. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +24 -0
  267. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base.rb +37 -0
  268. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb +25 -0
  269. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/build.rb +45 -0
  270. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/info.rb +44 -0
  271. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/scm.rb +88 -0
  272. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb +53 -0
  273. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb +18 -0
  274. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +70 -0
  275. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy_info.rb +35 -0
  276. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes/web_server.rb +34 -0
  277. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_host.rb +34 -0
  278. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_path.rb +38 -0
  279. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb +47 -0
  280. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy_info.rb +24 -0
  281. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb +13 -0
  282. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
  283. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0.rb +14 -0
  284. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
  285. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
  286. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
  287. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
  288. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.source +8 -0
  289. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.target +8 -0
  290. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.source +5 -0
  291. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.target +5 -0
  292. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
  293. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.source +29 -0
  294. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.target +21 -0
  295. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
  296. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.source +8 -0
  297. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.target +7 -0
  298. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
  299. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.source +11 -0
  300. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.target +9 -0
  301. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/instances/base_spec.rb +11 -0
  302. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/sources/base_spec.rb +7 -0
  303. data/sub/avm-eac_webapp_base0/spec/meta/rubocop_spec.rb +3 -0
  304. data/sub/avm-eac_webapp_base0/spec/spec_helper.rb +5 -0
  305. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_host/no_ssl.conf +11 -0
  306. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_path/default.conf +7 -0
  307. data/sub/avm-tools/Gemfile +8 -0
  308. data/sub/avm-tools/README.textile +28 -0
  309. data/sub/avm-tools/avm-tools.gemspec +24 -0
  310. data/sub/avm-tools/exe/avm +6 -0
  311. data/sub/avm-tools/lib/avm/tools/core_ext.rb +1 -0
  312. data/sub/avm-tools/lib/avm/tools/rspec/helpers/runner.rb +19 -0
  313. data/sub/avm-tools/lib/avm/tools/rspec/setup.rb +21 -0
  314. data/sub/avm-tools/lib/avm/tools/runner/application/info.rb +34 -0
  315. data/sub/avm-tools/lib/avm/tools/runner/application.rb +21 -0
  316. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes/list.rb +29 -0
  317. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes.rb +13 -0
  318. data/sub/avm-tools/lib/avm/tools/runner/applications/list.rb +29 -0
  319. data/sub/avm-tools/lib/avm/tools/runner/applications.rb +13 -0
  320. data/sub/avm-tools/lib/avm/tools/runner/config/load_path.rb +48 -0
  321. data/sub/avm-tools/lib/avm/tools/runner/config.rb +14 -0
  322. data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +46 -0
  323. data/sub/avm-tools/lib/avm/tools/runner/files/rotate.rb +28 -0
  324. data/sub/avm-tools/lib/avm/tools/runner/files.rb +14 -0
  325. data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +15 -0
  326. data/sub/avm-tools/lib/avm/tools/runner/instance/data/dump.rb +17 -0
  327. data/sub/avm-tools/lib/avm/tools/runner/instance/data/load.rb +22 -0
  328. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/clear.rb +17 -0
  329. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +17 -0
  330. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +22 -0
  331. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +40 -0
  332. data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +23 -0
  333. data/sub/avm-tools/lib/avm/tools/runner/instance/entry.rb +41 -0
  334. data/sub/avm-tools/lib/avm/tools/runner/instance/info.rb +35 -0
  335. data/sub/avm-tools/lib/avm/tools/runner/instance/system.rb +63 -0
  336. data/sub/avm-tools/lib/avm/tools/runner/instance.rb +10 -0
  337. data/sub/avm-tools/lib/avm/tools/runner/launcher/instances.rb +34 -0
  338. data/sub/avm-tools/lib/avm/tools/runner/launcher/projects.rb +37 -0
  339. data/sub/avm-tools/lib/avm/tools/runner/launcher/publish.rb +51 -0
  340. data/sub/avm-tools/lib/avm/tools/runner/launcher.rb +14 -0
  341. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes/list.rb +38 -0
  342. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes.rb +13 -0
  343. data/sub/avm-tools/lib/avm/tools/runner/self/docker.rb +12 -0
  344. data/sub/avm-tools/lib/avm/tools/runner/self/registry.rb +22 -0
  345. data/sub/avm-tools/lib/avm/tools/runner/self.rb +18 -0
  346. data/sub/avm-tools/lib/avm/tools/runner/source/auto_commit.rb +67 -0
  347. data/sub/avm-tools/lib/avm/tools/runner/source/info.rb +54 -0
  348. data/sub/avm-tools/lib/avm/tools/runner/source/issue/complete.rb +85 -0
  349. data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +32 -0
  350. data/sub/avm-tools/lib/avm/tools/runner/source/issue.rb +16 -0
  351. data/sub/avm-tools/lib/avm/tools/runner/source/sub/remove.rb +20 -0
  352. data/sub/avm-tools/lib/avm/tools/runner/source/sub.rb +25 -0
  353. data/sub/avm-tools/lib/avm/tools/runner/source/subs.rb +70 -0
  354. data/sub/avm-tools/lib/avm/tools/runner/source/test.rb +90 -0
  355. data/sub/avm-tools/lib/avm/tools/runner/source/update.rb +20 -0
  356. data/sub/avm-tools/lib/avm/tools/runner/source/version_bump.rb +78 -0
  357. data/sub/avm-tools/lib/avm/tools/runner/source.rb +13 -0
  358. data/sub/avm-tools/lib/avm/tools/runner/source_generate.rb +10 -0
  359. data/sub/avm-tools/lib/avm/tools/runner.rb +19 -0
  360. data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +20 -0
  361. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +19 -0
  362. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb +55 -0
  363. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_load.rb +64 -0
  364. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_performer.rb +37 -0
  365. data/sub/avm-tools/lib/avm/tools/self.rb +17 -0
  366. data/sub/avm-tools/lib/avm/tools/version.rb +7 -0
  367. data/sub/avm-tools/lib/avm/tools.rb +16 -0
  368. data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +71 -0
  369. data/sub/avm-tools/spec/lib/avm/tools/runner/launcher_stereotypes/list_spec.rb +15 -0
  370. data/sub/avm-tools/spec/lib/avm/tools/runner/source/issue/complete_spec.rb +47 -0
  371. data/sub/avm-tools/spec/lib/avm/tools/runner_spec.rb +12 -0
  372. data/sub/avm-tools/spec/meta/rubocop_spec.rb +3 -0
  373. data/sub/avm-tools/spec/spec_helper.rb +7 -0
  374. metadata +381 -12
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ class Sub
8
+ runner_with :help, :subcommands do
9
+ pos_arg :sub_path
10
+ subcommands
11
+ end
12
+ for_context :source_sub
13
+
14
+ private
15
+
16
+ # !method source_sub
17
+ # @return [Avm::Sources::Base::Sub]
18
+ def source_sub_uncached
19
+ source.sub(parsed.sub_path)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ class Subs
8
+ PADDING = ' '
9
+
10
+ runner_with :help, :output do
11
+ desc 'Output source\'s subs.'
12
+ bool_opt '-i', '--info'
13
+ bool_opt '-R', '--recursive'
14
+ bool_opt '-t', '--tree'
15
+ end
16
+
17
+ def run
18
+ start_banner
19
+ run_output
20
+ end
21
+
22
+ def start_banner
23
+ infov 'Include PATH', runner_context.call(:subject).subs_include_path
24
+ infov 'Exclude PATH', runner_context.call(:subject).subs_exclude_path
25
+ infov 'Count', runner_context.call(:subject).subs.count
26
+ end
27
+
28
+ def output_content
29
+ b = []
30
+ runner_context.call(:subject).subs.each do |sub|
31
+ b += sub_output_content_lines(sub, 0)
32
+ end
33
+ b.map { |line| "#{line}\n" }.join
34
+ end
35
+
36
+ def sub_info_label(sub)
37
+ return '' unless parsed.info?
38
+
39
+ ' [' + { # rubocop:disable Style/StringConcatenation
40
+ 'CLASS' => sub.class.name,
41
+ 'SCM' => sub.scm.class.name
42
+ }.map { |k, v| "#{k}: #{v}" }.join(', ') + ']'
43
+ end
44
+
45
+ def sub_label(sub, level)
46
+ sub_self_label(sub, level) + sub_info_label(sub)
47
+ end
48
+
49
+ def sub_self_label(sub, level)
50
+ if parsed.tree?
51
+ (PADDING * level) + sub.relative_path.to_s
52
+ else
53
+ sub.path.relative_path_from(runner_context.call(:subject).path).to_s
54
+ end
55
+ end
56
+
57
+ def sub_output_content_lines(sub, level)
58
+ [sub_label(sub, level)] + sub_subs_output_content_lines(sub, level)
59
+ end
60
+
61
+ def sub_subs_output_content_lines(sub, level)
62
+ return [] unless parsed.recursive?
63
+
64
+ sub.subs.flat_map { |sub_sub| sub_output_content_lines(sub_sub, level + 1) }
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ class Test
8
+ runner_with :help do
9
+ desc 'Test local project.'
10
+ bool_opt '-a', '--all', 'Same as "--self --subs".'
11
+ bool_opt '-f', '--fail-fast', 'Abort after first failure.'
12
+ bool_opt '-m', '--main', 'Test main source.'
13
+ bool_opt '-s', '--subs', 'Test subs\' sources.'
14
+ pos_arg :source_id, repeat: true, optional: true
15
+ end
16
+
17
+ def run
18
+ reset_tested_units
19
+ start_banner
20
+ show_units_results
21
+ final_result
22
+ end
23
+
24
+ private
25
+
26
+ attr_accessor :tested_units
27
+
28
+ def failed_units
29
+ tested_units.select(&:failed?)
30
+ end
31
+
32
+ def final_result
33
+ if failed_units.any?
34
+ failed_units.each do |unit|
35
+ infov ' * Source', unit
36
+ info unit.logs.truncate_all
37
+ end
38
+ fatal_error 'Some test did not pass'
39
+ else
40
+ success 'None test failed'
41
+ end
42
+ end
43
+
44
+ def include_main?
45
+ parsed.main? || parsed.all?
46
+ end
47
+
48
+ def include_subs?
49
+ parsed.subs? || parsed.all?
50
+ end
51
+
52
+ def reset_tested_units
53
+ self.tested_units = []
54
+ end
55
+
56
+ def show_units_results
57
+ test_performer.units.each do |unit|
58
+ infov unit, unit_result(unit)
59
+ tested_units << unit
60
+ break if unit.failed? && parsed.fail_fast?
61
+ end
62
+ end
63
+
64
+ def start_banner
65
+ runner_context.call(:source_banner)
66
+ infov 'Selected units', test_performer.units.count
67
+ end
68
+
69
+ def test_builder
70
+ r = ::Avm::Sources::Tests::Builder.new(runner_context.call(:subject))
71
+ .include_main(include_main?)
72
+ .include_subs(include_subs?)
73
+ parsed.source_id.inject(r) { |a, e| a.include_id(e) }
74
+ end
75
+
76
+ def test_performer_uncached
77
+ test_builder.performer
78
+ end
79
+
80
+ def unit_result(unit)
81
+ (
82
+ [unit.result.to_label] +
83
+ %i[stdout stderr].map { |label| "#{label.to_s.upcase}: #{unit.logs[label]}" }
84
+ ).join(' | '.blue)
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ class Update
8
+ runner_with :help do
9
+ desc 'Update local project.'
10
+ end
11
+
12
+ def run
13
+ infov 'Path', runner_context.call(:subject).path
14
+ runner_context.call(:subject).update
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ class VersionBump
8
+ runner_with :help, :confirmation do
9
+ desc 'Bump version of a local project.'
10
+ arg_opt '-n', '--new', 'Set new version.'
11
+ arg_opt '-s', '--segment', 'Increment de <segment>-th segment (Left-most is 0)'
12
+ bool_opt '-M', '--major', 'Same as --segment=0.'
13
+ bool_opt '-m', '--minor', 'Same as --segment=1.'
14
+ bool_opt '-p', '--patch', 'Same as --segment=2.'
15
+ end
16
+
17
+ def run
18
+ start_banner
19
+ version_changed? ? run_version_changed : run_version_unchanged
20
+ end
21
+
22
+ def run_version_changed
23
+ infom 'Version changed'
24
+ if confirm?
25
+ runner_context.call(:subject).version_bump(target_version)
26
+ success 'Bumped'
27
+ else
28
+ fatal_error 'Bump unconfirmed'
29
+ end
30
+ end
31
+
32
+ def run_version_unchanged
33
+ success 'Version unchanged'
34
+ end
35
+
36
+ def start_banner
37
+ infov 'Instance', runner_context.call(:subject)
38
+ infov 'Current version', current_version.if_present('-')
39
+ infov 'Target version', target_version.if_present('-')
40
+ end
41
+
42
+ def current_version_uncached
43
+ runner_context.call(:subject).version
44
+ end
45
+
46
+ def target_version_uncached
47
+ current_version.if_present do |r|
48
+ %w[new segment major minor patch].inject(r) do |a, e|
49
+ option_value = parsed[e]
50
+ next a if option_value.blank?
51
+
52
+ send("target_version_from_#{e}", a, option_value)
53
+ end
54
+ end
55
+ end
56
+
57
+ def target_version_from_new(_current, option_value)
58
+ ::Avm::VersionNumber.new(option_value)
59
+ end
60
+
61
+ def target_version_from_segment(current, option_value)
62
+ current.increment_segment(option_value.to_i)
63
+ end
64
+
65
+ %w[major minor patch].each_with_index do |segment, segment_index|
66
+ define_method "target_version_from_#{segment}" do |current, _option_value|
67
+ target_version_from_segment(current, segment_index)
68
+ end
69
+ end
70
+
71
+ def version_changed?
72
+ target_version != current_version
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class Source < ::Avm::Sources::Runner
7
+ def subject
8
+ source
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ class SourceGenerate < ::Avm::SourceGenerators::Runner
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ class Runner
6
+ include ::EacRubyBase0::Runner
7
+
8
+ runner_definition do
9
+ desc 'Tools for AVM.'
10
+ end
11
+
12
+ delegate :application, to: :'::Avm::Tools::Self'
13
+
14
+ def extra_available_subcommands
15
+ ::Avm::Registry.runners.registered_modules.index_by(&:command_argument)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module RunnerWith
6
+ module IncludeExclude
7
+ common_concern do
8
+ include ::EacCli::Runner
9
+
10
+ runner_definition do
11
+ arg_opt '-I', '--include', repeat: true
12
+ arg_opt '-E', '--exclude', repeat: true
13
+ end
14
+ end
15
+
16
+ delegate :include, :exclude, to: :parsed
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module RunnerWith
6
+ module InstanceDataClear
7
+ common_concern do
8
+ enable_simple_cache
9
+ include ::Avm::Tools::RunnerWith::InstanceDataPerformer
10
+ end
11
+
12
+ # @return [Class]
13
+ def data_performer_class
14
+ ::Avm::Data::Clearer
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module RunnerWith
6
+ module InstanceDataDump
7
+ common_concern do
8
+ enable_simple_cache
9
+ runner_definition do
10
+ bool_opt '-w', '--rewrite', 'Forces dump overwrite.'
11
+ pos_arg :dump_path, optional: true
12
+ end
13
+
14
+ set_callback :run, :after do
15
+ success("Dump path: \"#{dump_path}\"")
16
+ dump_path
17
+ end
18
+ end
19
+
20
+ include ::Avm::Tools::RunnerWith::InstanceDataPerformer
21
+
22
+ DUMP_EXPIRE_TIME = 1.day
23
+ NO_DUMP_MESSAGE = 'Dump "%s" already exist and rewrite options was no setted nor ' \
24
+ 'dump was expired.'
25
+
26
+ # @return [Class]
27
+ def data_performer_class
28
+ ::Avm::Data::Dumper
29
+ end
30
+
31
+ # @return [String]
32
+ def help_extra_text
33
+ "Default dump path: \"#{default_dump_path}\""
34
+ end
35
+
36
+ private
37
+
38
+ # @return [Avm::Data::Dumper]
39
+ def data_performer_uncached
40
+ r = super.overwrite(parsed.rewrite?)
41
+ parsed.dump_path.if_present(r) { |v| r.target_path(v.to_pathname) }
42
+ end
43
+
44
+ # @return [Pathname]
45
+ def dump_path
46
+ data_performer.target_path
47
+ end
48
+
49
+ def default_dump_path
50
+ data_performer.default_dump_path
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module RunnerWith
6
+ module InstanceDataLoad
7
+ common_concern do
8
+ enable_simple_cache
9
+
10
+ runner_definition do
11
+ arg_opt '-S', '--source-instance', 'Informa a instância a ser extraída o dump.'
12
+ bool_opt '-w', '--rewrite'
13
+ pos_arg :dump_path, optional: true
14
+ end
15
+
16
+ set_callback :run, :after do
17
+ success("Dump loaded from \"#{dump_path}\"")
18
+ end
19
+ end
20
+
21
+ include ::Avm::Tools::RunnerWith::InstanceDataPerformer
22
+
23
+ # @return [Class]
24
+ def data_performer_class
25
+ ::Avm::Data::Loader
26
+ end
27
+
28
+ private
29
+
30
+ # @return [Avm::Data::Loader]
31
+ def data_performer_uncached
32
+ super.source_path(dump_path)
33
+ end
34
+
35
+ # @return [Pathname]
36
+ def dump_path_uncached
37
+ return parsed.dump_path.to_pathname if parsed.dump_path.present?
38
+ return source_instance_dump_path if parsed.source_instance.present?
39
+
40
+ fatal_error "Dump path not set (Options: #{parsed})"
41
+ end
42
+
43
+ # @return [Avm::Instances::Base]
44
+ def source_instance
45
+ runner_context.call(:instance).class.by_id(parsed.source_instance)
46
+ end
47
+
48
+ # @return [Avm::Data::Dumper]
49
+ def source_instance_dumper
50
+ data_performer_set_includes_excludes(
51
+ ::Avm::Data::Dumper.new(source_instance_data_owner).overwrite(parsed.rewrite?)
52
+ )
53
+ end
54
+
55
+ # @return [Pathname]
56
+ def source_instance_dump_path
57
+ r = source_instance_dumper
58
+ r.perform
59
+ r.target_path
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module RunnerWith
6
+ module InstanceDataPerformer
7
+ acts_as_abstract :data_performer_class
8
+ common_concern do
9
+ enable_simple_cache
10
+ include ::EacCli::Runner
11
+ end
12
+
13
+ def run
14
+ if data_performer.performable?
15
+ data_performer.perform
16
+ else
17
+ fatal_error("Cannot perform: #{data_performer.cannot_perform_reason}")
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ # @return [Avm::Data::Performer]
24
+ def data_performer_uncached
25
+ data_performer_set_includes_excludes(data_performer_class.new(data_owner))
26
+ end
27
+
28
+ # @return [Avm::Data::Performer]
29
+ def data_performer_set_includes_excludes(data_performer)
30
+ %i[include exclude].inject(data_performer) do |a1, e1|
31
+ if_respond(e1, []).inject(a1) { |a2, e2| a2.send(e1, e2) }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ module Self
6
+ class << self
7
+ def application
8
+ @application ||= ::EacRubyBase0::Application.new(root.to_path)
9
+ end
10
+
11
+ def root
12
+ ::Pathname.new('../../..').expand_path(__dir__)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Tools
5
+ VERSION = '0.164.0'
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__ do
5
+ ignore 'core_ext'
6
+ end
7
+
8
+ module Avm
9
+ module Tools
10
+ end
11
+ end
12
+
13
+ require 'avm'
14
+ require 'eac_ruby_base0'
15
+
16
+ require 'avm/tools/core_ext'
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tmpdir'
4
+ require 'fileutils'
5
+
6
+ class StubClock
7
+ attr_reader :current
8
+
9
+ def initialize(year, month, day)
10
+ @current = ::Time.new(year, month, day)
11
+ end
12
+
13
+ def tick
14
+ @current += 1.day
15
+ @current
16
+ end
17
+ end
18
+
19
+ RSpec.describe Avm::Tools::Runner::Files::Rotate do
20
+ let(:workdir) { Dir.mktmpdir }
21
+ let(:source_basename) { 'myfile.tar.gz' }
22
+ let(:source_path) { File.join(workdir, source_basename) }
23
+
24
+ before do
25
+ FileUtils.touch(source_path)
26
+ end
27
+
28
+ it { expect(File.exist?(source_path)).to be(true) }
29
+
30
+ context 'when run' do
31
+ let(:files_with_prefix) { Dir["#{workdir}/myfile_*.tar.gz"] }
32
+
33
+ before do
34
+ Avm::Tools::Runner.run(argv: ['files', 'rotate', source_path])
35
+ end
36
+
37
+ it { expect(File.exist?(source_path)).to be(false) }
38
+ it { expect(files_with_prefix.count).to eq(1) }
39
+ end
40
+
41
+ describe 'space limit' do
42
+ let(:tempdir) { Dir.mktmpdir }
43
+ let(:clock) { StubClock.new(2000, 1, 1) }
44
+
45
+ it 'limit space used by rotated files' do # rubocop:disable RSpec/NoExpectationExample
46
+ file1 = create_and_rotate_stub_file([], [])
47
+ file2 = create_and_rotate_stub_file([file1], [])
48
+ file3 = create_and_rotate_stub_file([file2], [file1])
49
+ create_and_rotate_stub_file([file3], [file1, file2])
50
+ end
51
+
52
+ def create_and_rotate_stub_file(expect_exist, expect_not_exist)
53
+ rotate_runner = described_class.create(argv: [create_stub_file, '--space-limit=32'])
54
+ rotate_runner.run
55
+ test_files(rotate_runner.rotate, expect_exist, expect_not_exist)
56
+ rotate_runner.rotate.target_path
57
+ end
58
+
59
+ def test_files(rotate, expect_exist, expect_not_exist)
60
+ (expect_exist + [rotate.target_path]).each { |path| expect(File).to exist(path) }
61
+ expect_not_exist.each { |path| expect(File).not_to exist(path) }
62
+ end
63
+
64
+ def create_stub_file
65
+ stub_path = File.join(tempdir, 'stub.ext')
66
+ File.write(stub_path, 'A' * 16)
67
+ FileUtils.touch(stub_path, mtime: clock.tick)
68
+ stub_path
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Avm::Tools::Runner::LauncherStereotypes::List do
4
+ def avm_tools_runner_args_prefix
5
+ %w[launcher-stereotypes list]
6
+ end
7
+
8
+ it do
9
+ expect { avm_tools_runner_run }.not_to raise_error
10
+ end
11
+
12
+ it do
13
+ expect { avm_tools_runner_run('--deprecated') }.not_to raise_error
14
+ end
15
+ end