eac_tools 0.98.0 → 0.99.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 (284) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +97 -92
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/lib/eac_tools.rb +4 -2
  5. data/sub/avm/avm.gemspec +3 -2
  6. data/sub/avm/lib/avm/application_scms/base.rb +1 -1
  7. data/sub/avm/lib/avm/application_scms.rb +1 -2
  8. data/sub/avm/lib/avm/application_stereotypes/base.rb +1 -1
  9. data/sub/avm/lib/avm/application_stereotypes.rb +1 -2
  10. data/sub/avm/lib/avm/applications/base/local_instance.rb +1 -1
  11. data/sub/avm/lib/avm/applications/base/local_source.rb +1 -1
  12. data/sub/avm/lib/avm/applications/base/naming.rb +1 -1
  13. data/sub/avm/lib/avm/applications/base/publishing.rb +1 -2
  14. data/sub/avm/lib/avm/applications/base/scm.rb +1 -1
  15. data/sub/avm/lib/avm/applications/base.rb +1 -1
  16. data/sub/avm/lib/avm/applications.rb +1 -2
  17. data/sub/avm/lib/avm/data/callbacks.rb +1 -1
  18. data/sub/avm/lib/avm/data/clearer.rb +1 -1
  19. data/sub/avm/lib/avm/data/dumper.rb +1 -2
  20. data/sub/avm/lib/avm/data/loader.rb +1 -2
  21. data/sub/avm/lib/avm/data/package/base_performer.rb +1 -1
  22. data/sub/avm/lib/avm/data/package/build_directory.rb +1 -2
  23. data/sub/avm/lib/avm/data/package/clear.rb +1 -1
  24. data/sub/avm/lib/avm/data/package/dump.rb +1 -1
  25. data/sub/avm/lib/avm/data/package/load.rb +1 -1
  26. data/sub/avm/lib/avm/data/package.rb +1 -1
  27. data/sub/avm/lib/avm/data/performer.rb +1 -2
  28. data/sub/avm/lib/avm/data/rotate.rb +1 -1
  29. data/sub/avm/lib/avm/data/unit.rb +2 -4
  30. data/sub/avm/lib/avm/data/unit_with_commands.rb +1 -1
  31. data/sub/avm/lib/avm/docker/container.rb +1 -1
  32. data/sub/avm/lib/avm/docker/image.rb +1 -1
  33. data/sub/avm/lib/avm/docker/runner.rb +1 -1
  34. data/sub/avm/lib/avm/docker.rb +1 -2
  35. data/sub/avm/lib/avm/entries/auto_values/entry.rb +1 -1
  36. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +1 -1
  37. data/sub/avm/lib/avm/entries/auto_values.rb +1 -2
  38. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +1 -1
  39. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +1 -1
  40. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +1 -1
  41. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +1 -1
  42. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +1 -1
  43. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +1 -1
  44. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +1 -1
  45. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +1 -1
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +1 -1
  47. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +3 -2
  48. data/sub/avm/lib/avm/entries/base.rb +1 -1
  49. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +1 -1
  50. data/sub/avm/lib/avm/entries/entry.rb +1 -3
  51. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +1 -1
  52. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +1 -1
  53. data/sub/avm/lib/avm/entries/jobs.rb +1 -2
  54. data/sub/avm/lib/avm/entries/keys_constants_set.rb +1 -1
  55. data/sub/avm/lib/avm/entries/uri_builder.rb +1 -3
  56. data/sub/avm/lib/avm/entries.rb +1 -2
  57. data/sub/avm/lib/avm/executables.rb +1 -2
  58. data/sub/avm/lib/avm/file_formats/search_formatter.rb +2 -2
  59. data/sub/avm/lib/avm/file_formats/unknown.rb +1 -1
  60. data/sub/avm/lib/avm/file_formats.rb +1 -2
  61. data/sub/avm/lib/avm/files/appendable/file_content.rb +31 -0
  62. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +30 -0
  63. data/sub/avm/lib/avm/files/appendable/resource_base.rb +19 -0
  64. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +31 -0
  65. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +40 -0
  66. data/sub/avm/lib/avm/files/appendable.rb +55 -0
  67. data/sub/avm/lib/avm/files/appender.rb +11 -0
  68. data/sub/avm/lib/avm/files/deploy.rb +71 -0
  69. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +24 -0
  70. data/sub/avm/lib/avm/files/text_replacer.rb +32 -0
  71. data/sub/avm/lib/avm/instances/base/auto_values.rb +1 -1
  72. data/sub/avm/lib/avm/instances/base/dockerizable.rb +1 -1
  73. data/sub/avm/lib/avm/instances/base/processes.rb +1 -1
  74. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +1 -1
  75. data/sub/avm/lib/avm/instances/base.rb +1 -2
  76. data/sub/avm/lib/avm/instances/data/unit.rb +1 -1
  77. data/sub/avm/lib/avm/instances/data.rb +1 -2
  78. data/sub/avm/lib/avm/instances/entry_keys.rb +1 -1
  79. data/sub/avm/lib/avm/instances/ids.rb +2 -2
  80. data/sub/avm/lib/avm/instances/process.rb +1 -1
  81. data/sub/avm/lib/avm/instances.rb +1 -2
  82. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +1 -1
  83. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +1 -1
  84. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +1 -1
  85. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +1 -1
  86. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +1 -1
  87. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +1 -2
  88. data/sub/avm/lib/avm/launcher/context/settings.rb +1 -1
  89. data/sub/avm/lib/avm/launcher/context.rb +3 -7
  90. data/sub/avm/lib/avm/launcher/errors.rb +1 -2
  91. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +1 -1
  92. data/sub/avm/lib/avm/launcher/instances/base.rb +1 -3
  93. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +0 -1
  94. data/sub/avm/lib/avm/launcher/instances/settings.rb +1 -1
  95. data/sub/avm/lib/avm/launcher/instances.rb +1 -2
  96. data/sub/avm/lib/avm/launcher/paths/logical.rb +1 -1
  97. data/sub/avm/lib/avm/launcher/paths.rb +1 -2
  98. data/sub/avm/lib/avm/launcher/project.rb +1 -1
  99. data/sub/avm/lib/avm/launcher/publish/base.rb +1 -1
  100. data/sub/avm/lib/avm/launcher/publish/check_result.rb +1 -1
  101. data/sub/avm/lib/avm/launcher/publish.rb +2 -3
  102. data/sub/avm/lib/avm/launcher.rb +1 -2
  103. data/sub/avm/lib/avm/launcher_stereotypes.rb +1 -2
  104. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +1 -1
  105. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +1 -1
  106. data/sub/avm/lib/avm/registry/application_stereotypes.rb +1 -1
  107. data/sub/avm/lib/avm/registry/applications.rb +1 -1
  108. data/sub/avm/lib/avm/registry/config_objects.rb +1 -2
  109. data/sub/avm/lib/avm/registry/from_gems.rb +1 -2
  110. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +1 -1
  111. data/sub/avm/lib/avm/registry/with_path/cache.rb +1 -1
  112. data/sub/avm/lib/avm/registry/with_path.rb +1 -1
  113. data/sub/avm/lib/avm/registry.rb +1 -2
  114. data/sub/avm/lib/avm/result.rb +1 -2
  115. data/sub/avm/lib/avm/rspec/launcher_controller.rb +1 -1
  116. data/sub/avm/lib/avm/rspec/setup/launcher.rb +1 -1
  117. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +1 -1
  118. data/sub/avm/lib/avm/rspec/setup.rb +1 -2
  119. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +1 -1
  120. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +1 -1
  121. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +1 -1
  122. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +1 -1
  123. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +1 -1
  124. data/sub/avm/lib/avm/rspec.rb +1 -2
  125. data/sub/avm/lib/avm/runner_with/file_replacer.rb +32 -0
  126. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +101 -0
  127. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +52 -0
  128. data/sub/avm/lib/avm/runner_with.rb +9 -0
  129. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +1 -1
  130. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +1 -1
  131. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +1 -1
  132. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +3 -3
  133. data/sub/avm/lib/avm/scms/auto_commit.rb +1 -2
  134. data/sub/avm/lib/avm/scms/base/branches.rb +1 -1
  135. data/sub/avm/lib/avm/scms/base/commits.rb +1 -1
  136. data/sub/avm/lib/avm/scms/base/milestones.rb +1 -1
  137. data/sub/avm/lib/avm/scms/base/remotes.rb +1 -1
  138. data/sub/avm/lib/avm/scms/base.rb +1 -1
  139. data/sub/avm/lib/avm/scms/branch.rb +1 -1
  140. data/sub/avm/lib/avm/scms/changed_file.rb +1 -1
  141. data/sub/avm/lib/avm/scms/commit.rb +1 -1
  142. data/sub/avm/lib/avm/scms/commit_info.rb +1 -1
  143. data/sub/avm/lib/avm/scms/interval.rb +1 -1
  144. data/sub/avm/lib/avm/scms/null/commit.rb +1 -1
  145. data/sub/avm/lib/avm/scms/null.rb +1 -3
  146. data/sub/avm/lib/avm/scms/remote.rb +1 -1
  147. data/sub/avm/lib/avm/scms.rb +1 -2
  148. data/sub/avm/lib/avm/self/docker_image.rb +1 -1
  149. data/sub/avm/lib/avm/source_generators/base.rb +2 -4
  150. data/sub/avm/lib/avm/source_generators/option_list.rb +1 -1
  151. data/sub/avm/lib/avm/source_generators.rb +1 -2
  152. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +1 -1
  153. data/sub/avm/lib/avm/sources/auto_commit.rb +1 -2
  154. data/sub/avm/lib/avm/sources/base/application.rb +1 -1
  155. data/sub/avm/lib/avm/sources/base/configuration.rb +1 -2
  156. data/sub/avm/lib/avm/sources/base/locale.rb +2 -4
  157. data/sub/avm/lib/avm/sources/base/organizational.rb +1 -1
  158. data/sub/avm/lib/avm/sources/base/parent.rb +1 -1
  159. data/sub/avm/lib/avm/sources/base/stereotype.rb +1 -1
  160. data/sub/avm/lib/avm/sources/base/sub/remove.rb +1 -1
  161. data/sub/avm/lib/avm/sources/base/sub.rb +1 -1
  162. data/sub/avm/lib/avm/sources/base/subs.rb +1 -1
  163. data/sub/avm/lib/avm/sources/base/subs_paths.rb +1 -1
  164. data/sub/avm/lib/avm/sources/base/testing.rb +1 -2
  165. data/sub/avm/lib/avm/sources/base/update.rb +1 -1
  166. data/sub/avm/lib/avm/sources/base/update_sub.rb +1 -1
  167. data/sub/avm/lib/avm/sources/base/update_subs.rb +1 -1
  168. data/sub/avm/lib/avm/sources/base/version_bump.rb +1 -1
  169. data/sub/avm/lib/avm/sources/base.rb +1 -1
  170. data/sub/avm/lib/avm/sources/configuration.rb +1 -1
  171. data/sub/avm/lib/avm/sources/issues.rb +1 -2
  172. data/sub/avm/lib/avm/sources/tests/builder.rb +1 -2
  173. data/sub/avm/lib/avm/sources/tests/performer.rb +1 -1
  174. data/sub/avm/lib/avm/sources/tests/single.rb +1 -1
  175. data/sub/avm/lib/avm/sources/tests.rb +1 -2
  176. data/sub/avm/lib/avm/sources.rb +1 -2
  177. data/sub/avm/lib/avm/sync.rb +1 -1
  178. data/sub/avm/lib/avm/version.rb +1 -1
  179. data/sub/avm/lib/avm/with/application_stereotype.rb +2 -4
  180. data/sub/avm/lib/avm/with/extra_subcommands.rb +1 -1
  181. data/sub/avm/lib/avm.rb +5 -2
  182. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +0 -2
  183. data/sub/avm/spec/lib/avm/applications/base_spec.rb +0 -2
  184. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +0 -2
  185. data/sub/avm/spec/lib/avm/instances/base_spec.rb +0 -3
  186. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +0 -3
  187. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +0 -3
  188. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +0 -2
  189. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +0 -2
  190. data/sub/avm/spec/lib/avm/scms/base_spec.rb +0 -2
  191. data/sub/avm/spec/lib/avm/sources/base_spec.rb +0 -2
  192. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +0 -2
  193. data/sub/avm/spec/spec_helper.rb +1 -1
  194. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +3 -3
  195. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/apply.rb +1 -2
  196. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/file_resource_name_helper.rb +1 -3
  197. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base/match.rb +1 -2
  198. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base.rb +1 -2
  199. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats.rb +0 -2
  200. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/instances.rb +0 -2
  201. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +0 -1
  202. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/docker.rb +0 -2
  203. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources.rb +0 -2
  204. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
  205. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0.rb +2 -2
  206. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec.rb +0 -2
  207. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb +0 -2
  208. data/sub/avm-eac_generic_base0/spec/spec_helper.rb +2 -1
  209. data/sub/avm-files/Gemfile +8 -0
  210. data/sub/avm-files/avm-files.gemspec +18 -0
  211. data/sub/avm-files/lib/avm/files/version.rb +7 -0
  212. data/sub/avm-files/spec/rubocop_spec.rb +3 -0
  213. data/sub/avm-files/spec/spec_helper.rb +5 -0
  214. data/sub/avm-tools/Gemfile +8 -0
  215. data/sub/avm-tools/README.textile +28 -0
  216. data/sub/avm-tools/avm-tools.gemspec +25 -0
  217. data/sub/avm-tools/exe/avm +6 -0
  218. data/sub/avm-tools/lib/avm/tools/core_ext.rb +3 -0
  219. data/sub/avm-tools/lib/avm/tools/rspec/helpers/runner.rb +20 -0
  220. data/sub/avm-tools/lib/avm/tools/rspec/helpers.rb +13 -0
  221. data/sub/avm-tools/lib/avm/tools/rspec/setup.rb +24 -0
  222. data/sub/avm-tools/lib/avm/tools/rspec.rb +11 -0
  223. data/sub/avm-tools/lib/avm/tools/runner/application/info.rb +36 -0
  224. data/sub/avm-tools/lib/avm/tools/runner/application.rb +26 -0
  225. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes/list.rb +31 -0
  226. data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes.rb +16 -0
  227. data/sub/avm-tools/lib/avm/tools/runner/applications/list.rb +31 -0
  228. data/sub/avm-tools/lib/avm/tools/runner/applications.rb +16 -0
  229. data/sub/avm-tools/lib/avm/tools/runner/config/load_path.rb +52 -0
  230. data/sub/avm-tools/lib/avm/tools/runner/config.rb +17 -0
  231. data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +50 -0
  232. data/sub/avm-tools/lib/avm/tools/runner/files/rotate.rb +31 -0
  233. data/sub/avm-tools/lib/avm/tools/runner/files.rb +17 -0
  234. data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +18 -0
  235. data/sub/avm-tools/lib/avm/tools/runner/instance/data/dump.rb +20 -0
  236. data/sub/avm-tools/lib/avm/tools/runner/instance/data/load.rb +25 -0
  237. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/clear.rb +20 -0
  238. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +20 -0
  239. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +25 -0
  240. data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +44 -0
  241. data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +27 -0
  242. data/sub/avm-tools/lib/avm/tools/runner/instance/entry.rb +43 -0
  243. data/sub/avm-tools/lib/avm/tools/runner/instance/info.rb +39 -0
  244. data/sub/avm-tools/lib/avm/tools/runner/instance/system.rb +65 -0
  245. data/sub/avm-tools/lib/avm/tools/runner/instance.rb +16 -0
  246. data/sub/avm-tools/lib/avm/tools/runner/launcher/instances.rb +36 -0
  247. data/sub/avm-tools/lib/avm/tools/runner/launcher/projects.rb +40 -0
  248. data/sub/avm-tools/lib/avm/tools/runner/launcher/publish.rb +53 -0
  249. data/sub/avm-tools/lib/avm/tools/runner/launcher.rb +17 -0
  250. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes/list.rb +41 -0
  251. data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes.rb +16 -0
  252. data/sub/avm-tools/lib/avm/tools/runner/self/docker.rb +14 -0
  253. data/sub/avm-tools/lib/avm/tools/runner/self/registry.rb +25 -0
  254. data/sub/avm-tools/lib/avm/tools/runner/self.rb +22 -0
  255. data/sub/avm-tools/lib/avm/tools/runner/source/auto_commit.rb +72 -0
  256. data/sub/avm-tools/lib/avm/tools/runner/source/info.rb +55 -0
  257. data/sub/avm-tools/lib/avm/tools/runner/source/issue/complete.rb +86 -0
  258. data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +35 -0
  259. data/sub/avm-tools/lib/avm/tools/runner/source/issue.rb +19 -0
  260. data/sub/avm-tools/lib/avm/tools/runner/source/sub/remove.rb +22 -0
  261. data/sub/avm-tools/lib/avm/tools/runner/source/sub.rb +29 -0
  262. data/sub/avm-tools/lib/avm/tools/runner/source/subs.rb +72 -0
  263. data/sub/avm-tools/lib/avm/tools/runner/source/test.rb +93 -0
  264. data/sub/avm-tools/lib/avm/tools/runner/source/update.rb +22 -0
  265. data/sub/avm-tools/lib/avm/tools/runner/source/version_bump.rb +81 -0
  266. data/sub/avm-tools/lib/avm/tools/runner/source.rb +18 -0
  267. data/sub/avm-tools/lib/avm/tools/runner/source_generate.rb +12 -0
  268. data/sub/avm-tools/lib/avm/tools/runner.rb +25 -0
  269. data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +23 -0
  270. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +23 -0
  271. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb +59 -0
  272. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_load.rb +69 -0
  273. data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_performer.rb +40 -0
  274. data/sub/avm-tools/lib/avm/tools/runner_with.rb +11 -0
  275. data/sub/avm-tools/lib/avm/tools/self.rb +23 -0
  276. data/sub/avm-tools/lib/avm/tools/version.rb +7 -0
  277. data/sub/avm-tools/lib/avm/tools.rb +12 -0
  278. data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +71 -0
  279. data/sub/avm-tools/spec/lib/avm/tools/runner/launcher_stereotypes/list_spec.rb +15 -0
  280. data/sub/avm-tools/spec/lib/avm/tools/runner/source/issue/complete_spec.rb +47 -0
  281. data/sub/avm-tools/spec/lib/avm/tools/runner_spec.rb +12 -0
  282. data/sub/avm-tools/spec/rubocop_spec.rb +3 -0
  283. data/sub/avm-tools/spec/spec_helper.rb +5 -0
  284. metadata +113 -30
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/instances/runner_helper'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Launcher
9
+ class Instances
10
+ runner_with :help, ::Avm::Launcher::Instances::RunnerHelper do
11
+ desc 'Mostra informações sobre instâncias.'
12
+ bool_opt '-e', '--extra', 'Show instances\' extra data.'
13
+ pos_arg :instance_path, repeat: true, optional: true
14
+ end
15
+
16
+ def run
17
+ instances.each { |i| show_instance(i) }
18
+ end
19
+
20
+ private
21
+
22
+ def show_instance(instance)
23
+ puts instance_label(instance)
24
+ show_instance_extra(instance) if parsed.extra?
25
+ end
26
+
27
+ def show_instance_extra(instance)
28
+ infov(' * Parent', (instance.parent ? instance_label(instance.parent) : '-'))
29
+ infov(' * Git current revision', instance.options.git_current_revision)
30
+ infov(' * Git publish remote', instance.options.git_publish_remote)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/context'
4
+ require 'avm/launcher/instances/runner_helper'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class Launcher
10
+ class Projects
11
+ runner_with :help, ::Avm::Launcher::Instances::RunnerHelper do
12
+ desc 'Shows available projects.'
13
+ bool_opt '-i', '--instances', 'Show instances.'
14
+ end
15
+
16
+ def run
17
+ ::Avm::Launcher::Context.current.projects.each do |p|
18
+ show_project(p)
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def show_project(project)
25
+ puts project_label(project)
26
+ return unless parsed.instances?
27
+
28
+ project.instances.each do |i|
29
+ puts " * #{instance_label(i)}"
30
+ end
31
+ end
32
+
33
+ def project_label(project)
34
+ project.to_s.cyan.to_s
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/instances/runner_helper'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Launcher
9
+ class Publish
10
+ runner_with :help, ::Avm::Launcher::Instances::RunnerHelper do
11
+ desc 'Publica projetos ou instâncias.'
12
+ bool_opt '-d', '--dry-run', '"Dry run" publishing.'
13
+ bool_opt '--new', 'Publish projects not published before.'
14
+ bool_opt '--run', 'Confirm publishing.'
15
+ arg_opt '-s', '--stereotype', 'Publish only for stereotype <stereotype>.'
16
+ pos_arg :instance_path, repeat: true, optional: true
17
+ end
18
+
19
+ def run
20
+ build_publish_options
21
+ instances.each do |i|
22
+ next unless i.publishable?
23
+
24
+ i.send(instance_method)
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def dry_run?
31
+ parsed.dry_run?
32
+ end
33
+
34
+ def instance_method
35
+ run? || dry_run? ? 'publish_run' : 'publish_check'
36
+ end
37
+
38
+ def build_publish_options
39
+ ::Avm::Launcher::Context.current.publish_options = publish_options
40
+ end
41
+
42
+ def publish_options
43
+ { new: parsed.new?, stereotype: parsed.stereotype?, confirm: run? }
44
+ end
45
+
46
+ def run?
47
+ parsed.run? && !dry_run?
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Launcher
9
+ require_sub __FILE__
10
+ runner_with :help, :subcommands do
11
+ desc 'Utilities to deploy applications and libraries.'
12
+ subcommands
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/launcher/stereotype'
4
+ require 'avm/tools/core_ext'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class LauncherStereotypes
10
+ class List
11
+ runner_with :help, :output do
12
+ bool_opt '-d', '--deprecated'
13
+ end
14
+
15
+ def run
16
+ infov 'Found', stereotypes.count
17
+ run_output
18
+ end
19
+
20
+ def output_content
21
+ stereotypes.map { |s| "#{s}\n" }.join
22
+ end
23
+
24
+ private
25
+
26
+ def stereotypes
27
+ (parsed.deprecated? ? deprecated_stereotypes : registry_stereotypes)
28
+ end
29
+
30
+ def registry_stereotypes
31
+ ::Avm::Registry.launcher_stereotypes.available.sort_by { |s| [s.name] }
32
+ end
33
+
34
+ def deprecated_stereotypes
35
+ ::Avm::Launcher::Stereotype.stereotypes.sort_by { |s| [s.stereotype_name] }
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class LauncherStereotypes
9
+ require_sub __FILE__
10
+ runner_with :help, :subcommands do
11
+ subcommands
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/docker/runner'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Self
9
+ class Docker < ::Avm::Docker::Runner
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/registry'
4
+ require 'avm/tools/core_ext'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class Self
10
+ class Registry
11
+ runner_with :help do
12
+ desc 'Show information from registry'
13
+ end
14
+
15
+ def run
16
+ ::Avm::Registry.registries.each do |registry|
17
+ infov registry.module_suffix, registry.registered_modules.count
18
+ registry.registered_modules.each { |m| infov ' * ', m }
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+ require 'avm/self/instance'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class Self
10
+ require_sub __FILE__
11
+ runner_with :help, :subcommands do
12
+ desc 'Utilities for self avm-tools.'
13
+ subcommands
14
+ end
15
+
16
+ def instance
17
+ ::Avm::Self::Instance.default
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'avm/file_formats/search_formatter'
5
+ require 'avm/scms/auto_commit/rules'
6
+ require 'avm/sources/auto_commit/for_file'
7
+
8
+ module Avm
9
+ module Tools
10
+ class Runner
11
+ class Source < ::Avm::Sources::Runner
12
+ class AutoCommit
13
+ runner_with :help do
14
+ desc 'Auto fixup files.'
15
+ bool_opt '-d', '--dirty', 'Select dirty files.'
16
+ bool_opt '-f', '--format', 'Format files before commit.'
17
+ arg_opt '-r', '--rule', 'Apply a rule in the specified order.', repeat: true
18
+ pos_arg :files, repeat: true, optional: true
19
+ end
20
+
21
+ def run
22
+ format_files
23
+ files.each do |file|
24
+ ::Avm::Sources::AutoCommit::ForFile.new(runner_context.call(:source), file, rules)
25
+ .run
26
+ end
27
+ end
28
+
29
+ def help_extra_text
30
+ "Rules\n" + ::Avm::Scms::AutoCommit::Rules.all # rubocop:disable Style/StringConcatenation
31
+ .map { |r| " #{r.keys.join(', ')}\n" }.join
32
+ end
33
+
34
+ private
35
+
36
+ def files_uncached
37
+ (files_from_option + dirty_files).sort.uniq
38
+ end
39
+
40
+ def files_from_option
41
+ parsed.files.map { |p| p.to_pathname.expand_path }
42
+ end
43
+
44
+ def format_files
45
+ return unless parsed.format?
46
+
47
+ infom 'Formating files...'
48
+ ::Avm::FileFormats::SearchFormatter
49
+ .new(files, ::Avm::FileFormats::SearchFormatter::OPTION_APPLY => true)
50
+ .run
51
+ end
52
+
53
+ def dirty_files
54
+ return [] unless parsed.dirty?
55
+
56
+ runner_context.call(:source).scm.changed_files.map(&:absolute_path)
57
+ end
58
+
59
+ def rules
60
+ parsed.rule.map do |rule_string|
61
+ ::Avm::Scms::AutoCommit::Rules.parse(rule_string)
62
+ end
63
+ end
64
+
65
+ def select
66
+ parsed.last? ? 1 : parsed.select
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Source < ::Avm::Sources::Runner
9
+ class Info
10
+ SOURCE_PROPERTIES = {
11
+ path: 'Path',
12
+ application: 'Application',
13
+ class: 'Stereotype',
14
+ scm: 'SCM'
15
+ }.freeze
16
+
17
+ runner_with :help do
18
+ desc 'Show information about local project instance.'
19
+ bool_opt '-p', '--parent', 'Show the parent source.'
20
+ bool_opt '-t', '--tests', 'Show test commands.'
21
+ end
22
+
23
+ def run
24
+ show_source
25
+ show_parent
26
+ show_test_commands
27
+ end
28
+
29
+ private
30
+
31
+ def show_parent
32
+ return unless parsed.parent?
33
+
34
+ infov 'Parent', runner_context.call(:subject).parent
35
+ end
36
+
37
+ def show_source
38
+ SOURCE_PROPERTIES.each do |property, label|
39
+ infov label, runner_context.call(:subject).send(property)
40
+ end
41
+ end
42
+
43
+ def show_test_commands
44
+ return unless parsed.tests?
45
+
46
+ infov 'Test commands', runner_context.call(:subject).test_commands.count
47
+ runner_context.call(:subject).test_commands.each do |name, command|
48
+ infov " * #{name}", command
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+ require 'clipboard'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class Source < ::Avm::Sources::Runner
10
+ class Issue
11
+ class Complete
12
+ runner_with :confirmation, :help do
13
+ desc 'Closes a issue in a remote repository.'
14
+ bool_opt '-f', '--uncomplete-unfail', 'Do not exit with error if issue is not ' \
15
+ 'completed or is invalid.'
16
+ arg_opt '-s', '--skip-validations', 'Does not validate conditions on <validations> ' \
17
+ '(Comma separated value).'
18
+ end
19
+
20
+ def run
21
+ return unless run_validate
22
+ return unless run_complete
23
+
24
+ clipboard_copy_tracker_message
25
+
26
+ success('Done!')
27
+ end
28
+
29
+ def help_extra_text
30
+ "Validations:\n#{doc_validations_list}"
31
+ end
32
+
33
+ def run_validate
34
+ complete.start_banner
35
+ return true if complete.valid?
36
+
37
+ uncomplete_message('Some validation did not pass')
38
+ end
39
+
40
+ def run_complete
41
+ return complete.run if confirm?('Confirm issue completion?')
42
+
43
+ uncomplete_message('Issue was not completed')
44
+ end
45
+
46
+ private
47
+
48
+ def clipboard_copy_tracker_message
49
+ ::Clipboard.copy(complete.textile_tracker_message)
50
+ infov 'Copied to clipboard', complete.textile_tracker_message
51
+ end
52
+
53
+ def complete_uncached
54
+ runner_context.call(:subject).completer(complete_issue_options)
55
+ end
56
+
57
+ def skip_validations
58
+ parsed.skip_validations.to_s.split(',').map(&:strip).compact_blank
59
+ end
60
+
61
+ def complete_issue_options
62
+ { skip_validations: skip_validations }
63
+ end
64
+
65
+ def doc_validations_list
66
+ complete.validation_keys.map { |k| " * #{k}" }.join("\n")
67
+ end
68
+
69
+ def uncomplete_unfail?
70
+ parsed.uncomplete_unfail?
71
+ end
72
+
73
+ def uncomplete_message(message)
74
+ if uncomplete_unfail?
75
+ warn(message)
76
+ else
77
+ fatal_error(message)
78
+ end
79
+ false
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+ require 'avm/sources/issues/deliver'
5
+
6
+ module Avm
7
+ module Tools
8
+ class Runner
9
+ class Source < ::Avm::Sources::Runner
10
+ class Issue
11
+ class Deliver
12
+ runner_with :confirmation, :help do
13
+ desc 'Deliver a issue in a remote repository.'
14
+ end
15
+
16
+ def run
17
+ deliver.start_banner
18
+ if confirm?('Confirm issue delivery?')
19
+ deliver.run
20
+ else
21
+ fatal_error 'Issue undelivered'
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def deliver_uncached
28
+ ::Avm::Sources::Issues::Deliver.new(runner_context.call(:subject).scm)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Source < ::Avm::Sources::Runner
9
+ class Issue
10
+ require_sub __FILE__
11
+ runner_with :help, :subcommands do
12
+ desc 'Issue operations within source.'
13
+ subcommands
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Source < ::Avm::Sources::Runner
9
+ class Sub
10
+ class Remove
11
+ runner_with :help
12
+
13
+ def run
14
+ source_sub.remove
15
+ success "Sub[#{source_sub.sub_path}] removed"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Source < ::Avm::Sources::Runner
9
+ class Sub
10
+ runner_with :help, :subcommands do
11
+ pos_arg :sub_path
12
+ subcommands
13
+ end
14
+ for_context :source_sub
15
+
16
+ private
17
+
18
+ # !method source_sub
19
+ # @return [Avm::Sources::Base::Sub]
20
+ def source_sub_uncached
21
+ source.sub(parsed.sub_path)
22
+ end
23
+
24
+ require_sub __FILE__
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/tools/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class Source < ::Avm::Sources::Runner
9
+ class Subs
10
+ PADDING = ' '
11
+
12
+ runner_with :help, :output do
13
+ desc 'Output source\'s subs.'
14
+ bool_opt '-i', '--info'
15
+ bool_opt '-R', '--recursive'
16
+ bool_opt '-t', '--tree'
17
+ end
18
+
19
+ def run
20
+ start_banner
21
+ run_output
22
+ end
23
+
24
+ def start_banner
25
+ infov 'Include PATH', runner_context.call(:subject).subs_include_path
26
+ infov 'Exclude PATH', runner_context.call(:subject).subs_exclude_path
27
+ infov 'Count', runner_context.call(:subject).subs.count
28
+ end
29
+
30
+ def output_content
31
+ b = []
32
+ runner_context.call(:subject).subs.each do |sub|
33
+ b += sub_output_content_lines(sub, 0)
34
+ end
35
+ b.map { |line| "#{line}\n" }.join
36
+ end
37
+
38
+ def sub_info_label(sub)
39
+ return '' unless parsed.info?
40
+
41
+ ' [' + { # rubocop:disable Style/StringConcatenation
42
+ 'CLASS' => sub.class.name,
43
+ 'SCM' => sub.scm.class.name
44
+ }.map { |k, v| "#{k}: #{v}" }.join(', ') + ']'
45
+ end
46
+
47
+ def sub_label(sub, level)
48
+ sub_self_label(sub, level) + sub_info_label(sub)
49
+ end
50
+
51
+ def sub_self_label(sub, level)
52
+ if parsed.tree?
53
+ (PADDING * level) + sub.relative_path.to_s
54
+ else
55
+ sub.path.relative_path_from(runner_context.call(:subject).path).to_s
56
+ end
57
+ end
58
+
59
+ def sub_output_content_lines(sub, level)
60
+ [sub_label(sub, level)] + sub_subs_output_content_lines(sub, level)
61
+ end
62
+
63
+ def sub_subs_output_content_lines(sub, level)
64
+ return [] unless parsed.recursive?
65
+
66
+ sub.subs.flat_map { |sub_sub| sub_output_content_lines(sub_sub, level + 1) }
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end