eac_tools 0.103.0 → 0.104.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +42 -48
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +28 -0
  5. data/sub/avm/lib/avm/application_scms/base.rb +37 -0
  6. data/sub/avm/lib/avm/application_scms.rb +6 -0
  7. data/sub/avm/lib/avm/application_stereotypes/base.rb +29 -0
  8. data/sub/avm/lib/avm/application_stereotypes.rb +6 -0
  9. data/sub/avm/lib/avm/applications/base/auto_local_source_path.rb +22 -0
  10. data/sub/avm/lib/avm/applications/base/local_instance.rb +28 -0
  11. data/sub/avm/lib/avm/applications/base/local_source.rb +33 -0
  12. data/sub/avm/lib/avm/applications/base/naming.rb +26 -0
  13. data/sub/avm/lib/avm/applications/base/organization.rb +27 -0
  14. data/sub/avm/lib/avm/applications/base/publishing.rb +39 -0
  15. data/sub/avm/lib/avm/applications/base/scm.rb +24 -0
  16. data/sub/avm/lib/avm/applications/base/stereotype.rb +29 -0
  17. data/sub/avm/lib/avm/applications/base.rb +34 -0
  18. data/sub/avm/lib/avm/applications.rb +6 -0
  19. data/sub/avm/lib/avm/data/callbacks.rb +36 -0
  20. data/sub/avm/lib/avm/data/clearer.rb +17 -0
  21. data/sub/avm/lib/avm/data/dumper.rb +137 -0
  22. data/sub/avm/lib/avm/data/loader.rb +23 -0
  23. data/sub/avm/lib/avm/data/package/base_performer.rb +36 -0
  24. data/sub/avm/lib/avm/data/package/build_directory.rb +25 -0
  25. data/sub/avm/lib/avm/data/package/clear.rb +19 -0
  26. data/sub/avm/lib/avm/data/package/dump.rb +42 -0
  27. data/sub/avm/lib/avm/data/package/load.rb +33 -0
  28. data/sub/avm/lib/avm/data/package.rb +64 -0
  29. data/sub/avm/lib/avm/data/performer.rb +45 -0
  30. data/sub/avm/lib/avm/data/rotate.rb +106 -0
  31. data/sub/avm/lib/avm/data/unit.rb +44 -0
  32. data/sub/avm/lib/avm/data/unit_with_commands.rb +48 -0
  33. data/sub/avm/lib/avm/docker/container.rb +49 -0
  34. data/sub/avm/lib/avm/docker/image.rb +73 -0
  35. data/sub/avm/lib/avm/docker/runner.rb +131 -0
  36. data/sub/avm/lib/avm/docker.rb +6 -0
  37. data/sub/avm/lib/avm/entries/auto_values/entry.rb +38 -0
  38. data/sub/avm/lib/avm/entries/auto_values/uri_entry.rb +21 -0
  39. data/sub/avm/lib/avm/entries/auto_values.rb +8 -0
  40. data/sub/avm/lib/avm/entries/base/inherited_entry_value.rb +44 -0
  41. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/default_value.rb +26 -0
  42. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/inherited_value.rb +37 -0
  43. data/sub/avm/lib/avm/entries/base/uri_component_entry_value/url_entry_value.rb +29 -0
  44. data/sub/avm/lib/avm/entries/base/uri_component_entry_value.rb +42 -0
  45. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/component_factory.rb +40 -0
  46. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/generic_component.rb +59 -0
  47. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/path_component.rb +16 -0
  48. data/sub/avm/lib/avm/entries/base/uri_components_entries_values/url_component.rb +24 -0
  49. data/sub/avm/lib/avm/entries/base/uri_components_entries_values.rb +23 -0
  50. data/sub/avm/lib/avm/entries/base.rb +55 -0
  51. data/sub/avm/lib/avm/entries/entry/no_context_entry.rb +21 -0
  52. data/sub/avm/lib/avm/entries/entry.rb +71 -0
  53. data/sub/avm/lib/avm/entries/jobs/base.rb +60 -0
  54. data/sub/avm/lib/avm/entries/jobs/variables_source/read_entry.rb +48 -0
  55. data/sub/avm/lib/avm/entries/jobs/variables_source.rb +13 -0
  56. data/sub/avm/lib/avm/entries/jobs/with_variables_source.rb +13 -0
  57. data/sub/avm/lib/avm/entries/jobs.rb +8 -0
  58. data/sub/avm/lib/avm/entries/keys_constants_set.rb +41 -0
  59. data/sub/avm/lib/avm/entries/uri_builder.rb +87 -0
  60. data/sub/avm/lib/avm/entries.rb +6 -0
  61. data/sub/avm/lib/avm/executables.rb +21 -0
  62. data/sub/avm/lib/avm/file_formats/base.rb +34 -0
  63. data/sub/avm/lib/avm/file_formats/file_result.rb +11 -0
  64. data/sub/avm/lib/avm/file_formats/search_formatter.rb +83 -0
  65. data/sub/avm/lib/avm/file_formats/unknown.rb +15 -0
  66. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +70 -0
  67. data/sub/avm/lib/avm/file_formats.rb +6 -0
  68. data/sub/avm/lib/avm/files/appendable/file_content.rb +30 -0
  69. data/sub/avm/lib/avm/files/appendable/plain_directory.rb +29 -0
  70. data/sub/avm/lib/avm/files/appendable/resource_base.rb +19 -0
  71. data/sub/avm/lib/avm/files/appendable/tar_output_command.rb +30 -0
  72. data/sub/avm/lib/avm/files/appendable/templatized_directory.rb +40 -0
  73. data/sub/avm/lib/avm/files/appendable.rb +55 -0
  74. data/sub/avm/lib/avm/files/appender.rb +9 -0
  75. data/sub/avm/lib/avm/files/deploy.rb +72 -0
  76. data/sub/avm/lib/avm/files/text_replacer/gsub.rb +24 -0
  77. data/sub/avm/lib/avm/files/text_replacer.rb +32 -0
  78. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +28 -0
  79. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +60 -0
  80. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +31 -0
  81. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +16 -0
  82. data/sub/avm/lib/avm/instances/base/auto_values.rb +12 -0
  83. data/sub/avm/lib/avm/instances/base/dockerizable.rb +43 -0
  84. data/sub/avm/lib/avm/instances/base/entry_keys.rb +25 -0
  85. data/sub/avm/lib/avm/instances/base/install.rb +28 -0
  86. data/sub/avm/lib/avm/instances/base/processes.rb +25 -0
  87. data/sub/avm/lib/avm/instances/base/production.rb +33 -0
  88. data/sub/avm/lib/avm/instances/base/subcommand_parent.rb +25 -0
  89. data/sub/avm/lib/avm/instances/base/web.rb +15 -0
  90. data/sub/avm/lib/avm/instances/base.rb +70 -0
  91. data/sub/avm/lib/avm/instances/data/files_unit.rb +57 -0
  92. data/sub/avm/lib/avm/instances/data/loading_denied_error.rb +10 -0
  93. data/sub/avm/lib/avm/instances/data/package.rb +25 -0
  94. data/sub/avm/lib/avm/instances/data/unit.rb +36 -0
  95. data/sub/avm/lib/avm/instances/data.rb +8 -0
  96. data/sub/avm/lib/avm/instances/docker_image.rb +13 -0
  97. data/sub/avm/lib/avm/instances/entry_keys.rb +39 -0
  98. data/sub/avm/lib/avm/instances/ids.rb +28 -0
  99. data/sub/avm/lib/avm/instances/process.rb +29 -0
  100. data/sub/avm/lib/avm/instances/runner.rb +36 -0
  101. data/sub/avm/lib/avm/instances.rb +6 -0
  102. data/sub/avm/lib/avm/launcher/context/instance_collector.rb +44 -0
  103. data/sub/avm/lib/avm/launcher/context/instance_discovery/root_instance_paths.rb +51 -0
  104. data/sub/avm/lib/avm/launcher/context/instance_discovery.rb +53 -0
  105. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instance.rb +34 -0
  106. data/sub/avm/lib/avm/launcher/context/instance_manager/cached_instances.rb +32 -0
  107. data/sub/avm/lib/avm/launcher/context/instance_manager.rb +74 -0
  108. data/sub/avm/lib/avm/launcher/context/settings.rb +51 -0
  109. data/sub/avm/lib/avm/launcher/context.rb +85 -0
  110. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  111. data/sub/avm/lib/avm/launcher/errors/non_project.rb +13 -0
  112. data/sub/avm/lib/avm/launcher/errors.rb +8 -0
  113. data/sub/avm/lib/avm/launcher/instances/base/cache.rb +43 -0
  114. data/sub/avm/lib/avm/launcher/instances/base/publishing.rb +53 -0
  115. data/sub/avm/lib/avm/launcher/instances/base.rb +77 -0
  116. data/sub/avm/lib/avm/launcher/instances/error.rb +10 -0
  117. data/sub/avm/lib/avm/launcher/instances/runner_helper.rb +43 -0
  118. data/sub/avm/lib/avm/launcher/instances/settings.rb +24 -0
  119. data/sub/avm/lib/avm/launcher/instances.rb +8 -0
  120. data/sub/avm/lib/avm/launcher/paths/logical.rb +76 -0
  121. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  122. data/sub/avm/lib/avm/launcher/paths.rb +8 -0
  123. data/sub/avm/lib/avm/launcher/project.rb +15 -0
  124. data/sub/avm/lib/avm/launcher/publish/base.rb +44 -0
  125. data/sub/avm/lib/avm/launcher/publish/check_result.rb +64 -0
  126. data/sub/avm/lib/avm/launcher/publish.rb +8 -0
  127. data/sub/avm/lib/avm/launcher/stereotype.rb +63 -0
  128. data/sub/avm/lib/avm/launcher.rb +6 -0
  129. data/sub/avm/lib/avm/launcher_stereotypes.rb +6 -0
  130. data/sub/avm/lib/avm/patches/eac_config/entry_path.rb +46 -0
  131. data/sub/avm/lib/avm/path_string.rb +27 -0
  132. data/sub/avm/lib/avm/registry/application_scms.rb +13 -0
  133. data/sub/avm/lib/avm/registry/application_stereotypes/build_available.rb +45 -0
  134. data/sub/avm/lib/avm/registry/application_stereotypes/stereotype_builder.rb +30 -0
  135. data/sub/avm/lib/avm/registry/application_stereotypes.rb +42 -0
  136. data/sub/avm/lib/avm/registry/applications.rb +35 -0
  137. data/sub/avm/lib/avm/registry/base.rb +26 -0
  138. data/sub/avm/lib/avm/registry/config_objects.rb +15 -0
  139. data/sub/avm/lib/avm/registry/detection_error.rb +8 -0
  140. data/sub/avm/lib/avm/registry/file_formats.rb +17 -0
  141. data/sub/avm/lib/avm/registry/from_gems.rb +67 -0
  142. data/sub/avm/lib/avm/registry/instances.rb +13 -0
  143. data/sub/avm/lib/avm/registry/launcher_stereotypes.rb +8 -0
  144. data/sub/avm/lib/avm/registry/runners.rb +8 -0
  145. data/sub/avm/lib/avm/registry/scms.rb +8 -0
  146. data/sub/avm/lib/avm/registry/source_generators.rb +14 -0
  147. data/sub/avm/lib/avm/registry/sources.rb +38 -0
  148. data/sub/avm/lib/avm/registry/with_path/cache.rb +28 -0
  149. data/sub/avm/lib/avm/registry/with_path.rb +46 -0
  150. data/sub/avm/lib/avm/registry.rb +32 -0
  151. data/sub/avm/lib/avm/result.rb +80 -0
  152. data/sub/avm/lib/avm/rspec/launcher_controller.rb +95 -0
  153. data/sub/avm/lib/avm/rspec/setup/launcher.rb +18 -0
  154. data/sub/avm/lib/avm/rspec/setup/source_generator.rb +20 -0
  155. data/sub/avm/lib/avm/rspec/setup.rb +32 -0
  156. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_format_file_resource_name.rb +13 -0
  157. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +28 -0
  158. data/sub/avm/lib/avm/rspec/shared_examples/avm_source_generated.rb +23 -0
  159. data/sub/avm/lib/avm/rspec/shared_examples/entries_values.rb +19 -0
  160. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +9 -0
  161. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +12 -0
  162. data/sub/avm/lib/avm/rspec/shared_examples/with_config.rb +9 -0
  163. data/sub/avm/lib/avm/rspec/shared_examples/with_launcher.rb +13 -0
  164. data/sub/avm/lib/avm/rspec.rb +6 -0
  165. data/sub/avm/lib/avm/runner_with/file_replacer.rb +30 -0
  166. data/sub/avm/lib/avm/runner_with/filesystem_renamer.rb +101 -0
  167. data/sub/avm/lib/avm/runner_with/filesystem_traverser.rb +54 -0
  168. data/sub/avm/lib/avm/runner_with.rb +9 -0
  169. data/sub/avm/lib/avm/runners/base.rb +27 -0
  170. data/sub/avm/lib/avm/scms/auto_commit/file_resource_name.rb +47 -0
  171. data/sub/avm/lib/avm/scms/auto_commit/for_file.rb +79 -0
  172. data/sub/avm/lib/avm/scms/auto_commit/rules/base.rb +37 -0
  173. data/sub/avm/lib/avm/scms/auto_commit/rules/last.rb +17 -0
  174. data/sub/avm/lib/avm/scms/auto_commit/rules/manual.rb +38 -0
  175. data/sub/avm/lib/avm/scms/auto_commit/rules/new.rb +21 -0
  176. data/sub/avm/lib/avm/scms/auto_commit/rules/nth.rb +29 -0
  177. data/sub/avm/lib/avm/scms/auto_commit/rules/unique.rb +19 -0
  178. data/sub/avm/lib/avm/scms/auto_commit/rules.rb +34 -0
  179. data/sub/avm/lib/avm/scms/auto_commit.rb +8 -0
  180. data/sub/avm/lib/avm/scms/base/branches.rb +20 -0
  181. data/sub/avm/lib/avm/scms/base/commits.rb +32 -0
  182. data/sub/avm/lib/avm/scms/base/milestones.rb +19 -0
  183. data/sub/avm/lib/avm/scms/base/remotes.rb +20 -0
  184. data/sub/avm/lib/avm/scms/base.rb +59 -0
  185. data/sub/avm/lib/avm/scms/branch.rb +24 -0
  186. data/sub/avm/lib/avm/scms/changed_file.rb +46 -0
  187. data/sub/avm/lib/avm/scms/commit.rb +64 -0
  188. data/sub/avm/lib/avm/scms/commit_info.rb +37 -0
  189. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  190. data/sub/avm/lib/avm/scms/interval.rb +16 -0
  191. data/sub/avm/lib/avm/scms/null/commit.rb +11 -0
  192. data/sub/avm/lib/avm/scms/null.rb +16 -0
  193. data/sub/avm/lib/avm/scms/remote.rb +9 -0
  194. data/sub/avm/lib/avm/scms.rb +6 -0
  195. data/sub/avm/lib/avm/self/docker_image.rb +11 -0
  196. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  197. data/sub/avm/lib/avm/self/instance.rb +27 -0
  198. data/sub/avm/lib/avm/source_generators/base.rb +69 -0
  199. data/sub/avm/lib/avm/source_generators/option.rb +11 -0
  200. data/sub/avm/lib/avm/source_generators/option_list.rb +29 -0
  201. data/sub/avm/lib/avm/source_generators/runner.rb +57 -0
  202. data/sub/avm/lib/avm/source_generators.rb +6 -0
  203. data/sub/avm/lib/avm/sources/auto_commit/for_file.rb +29 -0
  204. data/sub/avm/lib/avm/sources/auto_commit.rb +8 -0
  205. data/sub/avm/lib/avm/sources/base/application.rb +34 -0
  206. data/sub/avm/lib/avm/sources/base/configuration.rb +91 -0
  207. data/sub/avm/lib/avm/sources/base/instance.rb +13 -0
  208. data/sub/avm/lib/avm/sources/base/locale.rb +30 -0
  209. data/sub/avm/lib/avm/sources/base/organizational.rb +30 -0
  210. data/sub/avm/lib/avm/sources/base/parent.rb +26 -0
  211. data/sub/avm/lib/avm/sources/base/stereotype.rb +16 -0
  212. data/sub/avm/lib/avm/sources/base/sub/remove.rb +36 -0
  213. data/sub/avm/lib/avm/sources/base/sub.rb +23 -0
  214. data/sub/avm/lib/avm/sources/base/subs.rb +63 -0
  215. data/sub/avm/lib/avm/sources/base/subs_paths.rb +30 -0
  216. data/sub/avm/lib/avm/sources/base/testing.rb +67 -0
  217. data/sub/avm/lib/avm/sources/base/update.rb +37 -0
  218. data/sub/avm/lib/avm/sources/base/update_sub.rb +55 -0
  219. data/sub/avm/lib/avm/sources/base/update_subs.rb +17 -0
  220. data/sub/avm/lib/avm/sources/base/version_bump.rb +26 -0
  221. data/sub/avm/lib/avm/sources/base.rb +56 -0
  222. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  223. data/sub/avm/lib/avm/sources/configuration.rb +59 -0
  224. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  225. data/sub/avm/lib/avm/sources/issues.rb +8 -0
  226. data/sub/avm/lib/avm/sources/runner.rb +40 -0
  227. data/sub/avm/lib/avm/sources/tests/builder.rb +91 -0
  228. data/sub/avm/lib/avm/sources/tests/performer.rb +32 -0
  229. data/sub/avm/lib/avm/sources/tests/result.rb +15 -0
  230. data/sub/avm/lib/avm/sources/tests/single.rb +71 -0
  231. data/sub/avm/lib/avm/sources/tests.rb +8 -0
  232. data/sub/avm/lib/avm/sources/update_error.rb +8 -0
  233. data/sub/avm/lib/avm/sources.rb +6 -0
  234. data/sub/avm/lib/avm/sync.rb +90 -0
  235. data/sub/avm/lib/avm/version.rb +5 -0
  236. data/sub/avm/lib/avm/version_number.rb +45 -0
  237. data/sub/avm/lib/avm/with/application_stereotype.rb +29 -0
  238. data/sub/avm/lib/avm/with/extra_subcommands.rb +43 -0
  239. data/sub/{eac_docker/lib/eac_docker.rb → avm/lib/avm.rb} +5 -2
  240. data/sub/avm/locale/en.yml +6 -0
  241. data/sub/avm/locale/pt-BR.yml +6 -0
  242. data/sub/avm/spec/lib/avm/applications/base/entries_spec.rb +29 -0
  243. data/sub/avm/spec/lib/avm/applications/base/entries_spec_files/config.yml +12 -0
  244. data/sub/avm/spec/lib/avm/applications/base_spec.rb +21 -0
  245. data/sub/avm/spec/lib/avm/applications/base_spec_fixture.yml +3 -0
  246. data/sub/avm/spec/lib/avm/file_formats/base_spec.rb +9 -0
  247. data/sub/avm/spec/lib/avm/instances/base_spec.rb +104 -0
  248. data/sub/avm/spec/lib/avm/instances/base_spec_files/config.yml +50 -0
  249. data/sub/avm/spec/lib/avm/launcher/context_spec.rb +98 -0
  250. data/sub/avm/spec/lib/avm/launcher/context_spec.yml +5 -0
  251. data/sub/avm/spec/lib/avm/launcher/context_spec_files/config.yml +9 -0
  252. data/sub/avm/spec/lib/avm/launcher/instances/base_spec.rb +39 -0
  253. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/config.yml +5 -0
  254. data/sub/avm/spec/lib/avm/launcher/instances/base_spec_files/settings.yaml +5 -0
  255. data/sub/avm/spec/lib/avm/patches/eac_config/entry_path_spec.rb +26 -0
  256. data/sub/avm/spec/lib/avm/scms/auto_commit/file_resource_name_spec.rb +20 -0
  257. data/sub/avm/spec/lib/avm/scms/base_spec.rb +5 -0
  258. data/sub/avm/spec/lib/avm/sources/base_spec.rb +5 -0
  259. data/sub/avm/spec/lib/avm/sources/runner_spec.rb +7 -0
  260. data/sub/avm/spec/spec_helper/launcher_context/settings.yml +6 -0
  261. data/sub/{avm-eac_redmine_base0 → avm}/spec/spec_helper.rb +5 -3
  262. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/avm-tools.gemspec +29 -0
  263. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0 → avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools}/version.rb +2 -2
  264. data/sub/avm/template/avm/rspec/launcher_controller/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  265. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  266. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  267. data/sub/avm/template/avm/rspec/launcher_controller/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +16 -0
  268. data/sub/avm/template/avm/rspec/launcher_controller/settings.yml +1 -0
  269. data/sub/avm/template/avm/self/docker_image/Dockerfile +17 -0
  270. data/sub/avm/template/avm/self/docker_image/entrypoint.sh +12 -0
  271. data/sub/avm-git/avm-git.gemspec +25 -0
  272. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +44 -0
  273. data/sub/avm-git/lib/avm/git/application_scms/base.rb +18 -0
  274. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources.rb → avm-git/lib/avm/git/application_scms.rb} +2 -4
  275. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +29 -0
  276. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  277. data/sub/avm-git/lib/avm/git/commit/file.rb +42 -0
  278. data/sub/avm-git/lib/avm/git/commit.rb +57 -0
  279. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +40 -0
  280. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +20 -0
  281. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +59 -0
  282. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +37 -0
  283. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  284. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  285. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +34 -0
  286. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +21 -0
  287. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +36 -0
  288. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +54 -0
  289. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  290. data/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  291. data/sub/avm-git/lib/avm/git/issue.rb +10 -0
  292. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  293. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +21 -0
  294. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +37 -0
  295. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +42 -0
  296. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +54 -0
  297. data/sub/avm-git/lib/avm/git/launcher/base.rb +81 -0
  298. data/sub/avm-git/lib/avm/git/launcher/error.rb +13 -0
  299. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +36 -0
  300. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +128 -0
  301. data/sub/avm-git/lib/avm/git/launcher/remote.rb +53 -0
  302. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +36 -0
  303. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +63 -0
  304. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +16 -0
  305. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +13 -0
  306. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +25 -0
  307. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +22 -0
  308. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +29 -0
  309. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +82 -0
  310. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +32 -0
  311. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +16 -0
  312. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances.rb → avm-git/lib/avm/git/launcher_stereotypes.rb} +2 -4
  313. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +32 -0
  314. data/sub/avm-git/lib/avm/git/organize/repository.rb +74 -0
  315. data/sub/avm-git/lib/avm/git/organize.rb +9 -0
  316. data/sub/avm-git/lib/avm/git/revision_test.rb +102 -0
  317. data/sub/avm-git/lib/avm/git/runners/base/commit.rb +96 -0
  318. data/sub/avm-git/lib/avm/git/runners/base/deploy.rb +108 -0
  319. data/sub/avm-git/lib/avm/git/runners/base/dirty_files.rb +42 -0
  320. data/sub/avm-git/lib/avm/git/runners/base/organize.rb +72 -0
  321. data/sub/avm-git/lib/avm/git/runners/base/revisions_test.rb +63 -0
  322. data/sub/avm-git/lib/avm/git/runners/base/subrepo/check.rb +45 -0
  323. data/sub/avm-git/lib/avm/git/runners/base/subrepo/clone.rb +80 -0
  324. data/sub/avm-git/lib/avm/git/runners/base/subrepo/fix.rb +69 -0
  325. data/sub/avm-git/lib/avm/git/runners/base/subrepo.rb +17 -0
  326. data/sub/avm-git/lib/avm/git/runners/base.rb +40 -0
  327. data/sub/avm-git/lib/avm/git/runners.rb +9 -0
  328. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +28 -0
  329. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +17 -0
  330. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +34 -0
  331. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +25 -0
  332. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +21 -0
  333. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +38 -0
  334. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +24 -0
  335. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +64 -0
  336. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +32 -0
  337. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +44 -0
  338. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +28 -0
  339. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +18 -0
  340. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +18 -0
  341. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +29 -0
  342. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +54 -0
  343. data/sub/avm-git/lib/avm/git/scms/git.rb +46 -0
  344. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +19 -0
  345. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +23 -0
  346. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +23 -0
  347. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +30 -0
  348. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +33 -0
  349. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +29 -0
  350. data/sub/avm-git/lib/avm/git/scms/provider.rb +16 -0
  351. data/sub/avm-git/lib/avm/git/scms.rb +9 -0
  352. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +48 -0
  353. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +86 -0
  354. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +30 -0
  355. data/sub/avm-git/lib/avm/git/subrepo_check.rb +36 -0
  356. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +57 -0
  357. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  358. data/sub/avm-git/lib/avm/git/vendor.rb +9 -0
  359. data/sub/{avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0 → avm-git/lib/avm/git}/version.rb +2 -2
  360. data/sub/{avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0.rb → avm-git/lib/avm/git.rb} +8 -5
  361. data/sub/avm-git/locale/en.yml +6 -0
  362. data/sub/avm-git/locale/pt-BR.yml +6 -0
  363. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  364. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  365. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  366. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  367. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  368. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  369. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  370. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  371. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  372. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  373. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  374. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  375. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -0
  376. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec.rb +83 -0
  377. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_files/config.yml +5 -0
  378. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/publish_spec_settings.yml +6 -0
  379. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec.rb +53 -0
  380. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_files/config.yml +3 -0
  381. data/sub/avm-git/spec/lib/avm/git/launcher_stereotypes/git_subrepo/warp_spec_settings.yml +6 -0
  382. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec.rb +126 -0
  383. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append1/stub3.txt.template +1 -0
  384. data/sub/avm-git/spec/lib/avm/git/runners/base/deploy_spec_files/append2/stub4.txt +1 -0
  385. data/sub/avm-git/spec/lib/avm/git/scms/git/commit/deploy_spec.rb +92 -0
  386. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  387. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  388. data/sub/avm-git/spec/lib/avm/git/vendor/github_spec.rb +23 -0
  389. data/sub/{avm-eac_ubuntu_base0 → avm-git}/spec/spec_helper.rb +1 -1
  390. metadata +402 -109
  391. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -26
  392. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -12
  393. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -30
  394. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -22
  395. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -55
  396. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -46
  397. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -22
  398. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -20
  399. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -59
  400. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -19
  401. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -116
  402. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -35
  403. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -26
  404. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -21
  405. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -54
  406. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +0 -14
  407. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -17
  408. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -27
  409. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -70
  410. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -30
  411. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -26
  412. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -56
  413. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners.rb +0 -14
  414. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -36
  415. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -131
  416. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -65
  417. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -19
  418. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners.rb +0 -13
  419. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -16
  420. data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
  421. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
  422. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -22
  423. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
  424. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -26
  425. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
  426. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -45
  427. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
  428. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -36
  429. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
  430. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
  431. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
  432. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
  433. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +0 -52
  434. data/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +0 -21
  435. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache/resource.rb +0 -57
  436. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache.rb +0 -24
  437. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/docker_image.rb +0 -31
  438. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/instances/base.rb +0 -24
  439. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/rspec/ssh_docker_server.rb +0 -82
  440. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base/docker.rb +0 -15
  441. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base.rb +0 -26
  442. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/docker_image_spec.rb +0 -12
  443. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/rspec/ssh_docker_server_spec.rb +0 -11
  444. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base/docker_spec.rb +0 -11
  445. data/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base_spec.rb +0 -5
  446. data/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/docker_image/Dockerfile.template +0 -27
  447. data/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/rspec/ssh_docker_server/Dockerfile.template +0 -24
  448. data/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/rspec/ssh_docker_server/id_rsa +0 -27
  449. data/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/rspec/ssh_docker_server/id_rsa.pub +0 -1
  450. data/sub/eac_docker/Gemfile +0 -8
  451. data/sub/eac_docker/eac_docker.gemspec +0 -20
  452. data/sub/eac_docker/lib/eac_docker/container.rb +0 -83
  453. data/sub/eac_docker/lib/eac_docker/debug.rb +0 -13
  454. data/sub/eac_docker/lib/eac_docker/executables.rb +0 -15
  455. data/sub/eac_docker/lib/eac_docker/images/base.rb +0 -11
  456. data/sub/eac_docker/lib/eac_docker/images/coded.rb +0 -39
  457. data/sub/eac_docker/lib/eac_docker/images/named.rb +0 -26
  458. data/sub/eac_docker/lib/eac_docker/images/templatized.rb +0 -43
  459. data/sub/eac_docker/lib/eac_docker/registry.rb +0 -15
  460. data/sub/eac_docker/lib/eac_docker/rspec/setup.rb +0 -15
  461. data/sub/eac_docker/lib/eac_docker/rspec/stub_image.rb +0 -39
  462. data/sub/eac_docker/lib/eac_docker/version.rb +0 -5
  463. data/sub/eac_docker/spec/lib/eac_docker/executables_spec.rb +0 -7
  464. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +0 -10
  465. data/sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +0 -1
  466. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +0 -15
  467. data/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +0 -1
  468. data/sub/eac_docker/spec/rubocop_spec.rb +0 -3
  469. data/sub/eac_docker/spec/spec_helper.rb +0 -5
  470. /data/sub/{avm-eac_ubuntu_base0 → avm}/Gemfile +0 -0
  471. /data/sub/{avm-eac_ubuntu_base0 → avm}/spec/rubocop_spec.rb +0 -0
  472. /data/sub/{avm-eac_redmine_base0 → avm-git}/Gemfile +0 -0
  473. /data/sub/{avm-eac_redmine_base0 → avm-git}/spec/rubocop_spec.rb +0 -0
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ module Appendable
8
+ class ResourceBase
9
+ acts_as_abstract :to_s_attributes
10
+ common_constructor :appender
11
+
12
+ def to_s
13
+ v_to_s = to_s_attributes.map { |k| "#{k}: #{send(k)}" }.join(', ')
14
+ "#{self.class.name}[#{v_to_s}]"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_ruby_utils/envs'
5
+
6
+ module Avm
7
+ module Files
8
+ module Appendable
9
+ class TarOutputCommand < ::Avm::Files::Appendable::ResourceBase
10
+ attr_reader :command
11
+
12
+ def initialize(appender, command)
13
+ super(appender)
14
+ @command = command
15
+ end
16
+
17
+ def write_on(target_dir)
18
+ command.pipe(
19
+ ::EacRubyUtils::Envs.local.command('tar', '-xf', '-', '-C', target_dir)
20
+ ).execute!
21
+ end
22
+
23
+ # @return [Enumerable<Symbol>]
24
+ def to_s_attributes
25
+ [:command]
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ require 'eac_templates/variables/directory'
6
+
7
+ module Avm
8
+ module Files
9
+ module Appendable
10
+ class TemplatizedDirectory < ::Avm::Files::Appendable::ResourceBase
11
+ common_constructor :appender, :source_path, super_args: -> { [appender] }
12
+
13
+ # @return [Object]
14
+ def applier
15
+ return source_path if source_path.respond_to?(:apply)
16
+
17
+ applier_from_path
18
+ end
19
+
20
+ # @return [EacTemplates::Variables::Directory]
21
+ def applier_from_path
22
+ raise "\"#{source_path}\" is not a directory" unless ::File.directory?(source_path)
23
+
24
+ ::EacTemplates::Variables::Directory.new(source_path)
25
+ end
26
+
27
+ def write_on(target_dir)
28
+ raise 'Variables source not set' if appender.variables_source.blank?
29
+
30
+ applier.apply(appender.variables_source, target_dir)
31
+ end
32
+
33
+ # @return [Enumerable<Symbol>]
34
+ def to_s_attributes
35
+ [:source_path]
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ module Appendable
8
+ require_sub __FILE__
9
+
10
+ attr_reader :variables_source
11
+
12
+ def appended
13
+ @appended ||= []
14
+ end
15
+
16
+ def append_templatized_directories(directories)
17
+ directories.each { |directory| append_templatized_directory(directory) }
18
+ self
19
+ end
20
+
21
+ def append_plain_directory(directory)
22
+ appended << ::Avm::Files::Appendable::PlainDirectory.new(self, directory)
23
+ self
24
+ end
25
+
26
+ def append_tar_output_command(tar_command)
27
+ appended << ::Avm::Files::Appendable::TarOutputCommand.new(self, tar_command)
28
+ self
29
+ end
30
+
31
+ def append_templatized_directory(directory)
32
+ appended << ::Avm::Files::Appendable::TemplatizedDirectory.new(self, directory)
33
+ self
34
+ end
35
+
36
+ def append_file_content(target_path, content)
37
+ appended << ::Avm::Files::Appendable::FileContent
38
+ .new(self, target_path, content)
39
+ self
40
+ end
41
+
42
+ def variables_source_set(source)
43
+ @variables_source = source
44
+ self
45
+ end
46
+
47
+ def write_appended_on(target_dir)
48
+ target_dir = target_dir.to_pathname
49
+ raise "\"#{target_dir}\" is not a directory" unless target_dir.directory?
50
+
51
+ appended.each { |append| append.write_on(target_dir) }
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Files
5
+ class Appender
6
+ include ::Avm::Files::Appendable
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable'
4
+
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module Files
9
+ class Deploy
10
+ include ::Avm::Files::Appendable
11
+
12
+ enable_simple_cache
13
+
14
+ attr_reader :build_dir, :target_env, :target_path
15
+
16
+ common_constructor :target_env, :target_path
17
+
18
+ def run
19
+ on_build_dir do
20
+ copy_content_to_build_dir
21
+ mkdir_target
22
+ clear_content
23
+ send_untar_package
24
+ set_target_permission
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def on_build_dir
31
+ @build_dir = ::Dir.mktmpdir
32
+ yield
33
+ ensure
34
+ ::FileUtils.rm_rf(@build_dir)
35
+ end
36
+
37
+ def copy_content_to_build_dir
38
+ write_appended_on(build_dir)
39
+ end
40
+
41
+ def mkdir_target
42
+ target_env.command('mkdir', '-p', target_path).execute!
43
+ end
44
+
45
+ def clear_content
46
+ target_env.command(
47
+ 'find', target_path, '-mindepth', '1', '-maxdepth', '1', '-exec', 'rm', '-rf', '{}', ';'
48
+ ).execute!
49
+ end
50
+
51
+ def send_untar_package
52
+ tar_build_command.pipe(untar_build_command).execute!
53
+ end
54
+
55
+ def set_target_permission
56
+ target_env.command('chmod', '755', target_path).execute!
57
+ end
58
+
59
+ def tar_build_command
60
+ source_env.command('tar', '-czO', '-C', build_dir, '.')
61
+ end
62
+
63
+ def untar_build_command
64
+ target_env.command('tar', '-xzf', '-', '-C', target_path)
65
+ end
66
+
67
+ def source_env
68
+ ::EacRubyUtils::Envs.local
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ class TextReplacer
8
+ class Gsub
9
+ common_constructor :from, :to do
10
+ self.from = from
11
+ self.to = to
12
+ end
13
+
14
+ def apply(input)
15
+ input.gsub(from, to)
16
+ end
17
+
18
+ def to_s
19
+ "\"#{from}\" => \"#{to}\""
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Files
7
+ class TextReplacer
8
+ require_sub __FILE__
9
+ enable_immutable
10
+
11
+ immutable_accessor :replacement, type: :array
12
+
13
+ def apply(input)
14
+ replacements.inject(input) { |a, e| e.apply(a) }
15
+ end
16
+
17
+ def file_apply(file) # rubocop:disable Naming/PredicateMethod
18
+ file = file.to_pathname
19
+ input = file.read
20
+ output = apply(file.read)
21
+ return false if output == input
22
+
23
+ file.write(output)
24
+ true
25
+ end
26
+
27
+ def gsub(from, to)
28
+ replacement(::Avm::Files::TextReplacer::Gsub.new(from, to))
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module AutoValues
7
+ module Data
8
+ def auto_data_default_dump_path
9
+ ::Avm::Self::Instance
10
+ .default
11
+ .read_entry_optional(::Avm::Self::Instance::EntryKeys::DATA_DEFAULT_PATH)
12
+ .if_present do |v|
13
+ ::File.join(
14
+ v,
15
+ "#{id}#{data_package.data_file_extension}"
16
+ )
17
+ end
18
+ end
19
+
20
+ # @return [Boolean]
21
+ def auto_data_allow_loading # rubocop:disable Naming/PredicateMethod
22
+ local? || !production?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module AutoValues
7
+ module Database
8
+ LOCAL_ADDRESS = '127.0.0.1'
9
+ LOCAL_ADDRESSES = [LOCAL_ADDRESS, '::1', 'localhost'].freeze
10
+ DEFAULT_EXTRA = ''
11
+ DEFAULT_HOSTNAME = LOCAL_ADDRESS
12
+ DEFAULT_LIMIT = 5
13
+ DEFAULT_PORTS = {
14
+ 'postgresql' => 5432,
15
+ 'mysql' => 3306,
16
+ 'oracle' => 1521,
17
+ 'sqlserver' => 1433
18
+ }.freeze
19
+ DEFAULT_SYSTEM = 'postgresql'
20
+ DEFAULT_TIMEOUT = 5000
21
+
22
+ %w[extra hostname limit system timeout].each do |attr|
23
+ define_method "auto_database_#{attr}" do
24
+ database_auto_common(attr) || self.class.const_get("default_#{attr}".upcase)
25
+ end
26
+ end
27
+
28
+ %w[username password].each do |attr|
29
+ define_method "auto_database_#{attr}" do
30
+ database_auto_common(attr) || id
31
+ end
32
+ end
33
+
34
+ def auto_database_name
35
+ inherited_entry_value(::Avm::Instances::EntryKeys::DATABASE_ID,
36
+ ::Avm::Instances::EntryKeys::DATABASE_NAME) || id
37
+ end
38
+
39
+ def auto_database_port
40
+ database_auto_common('port') || database_port_by_system
41
+ end
42
+
43
+ private
44
+
45
+ def database_auto_common(suffix)
46
+ database_key = ::Avm::Instances::EntryKeys.const_get("database_#{suffix}".upcase)
47
+ inherited_entry_value(::Avm::Instances::EntryKeys::DATABASE_ID, database_key) ||
48
+ inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, database_key)
49
+ end
50
+
51
+ def database_port_by_system
52
+ read_entry_optional(::Avm::Instances::EntryKeys::DATABASE_SYSTEM).if_present do |v|
53
+ DEFAULT_PORTS.fetch(v)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module AutoValues
7
+ module Mailer
8
+ ::Avm::Instances::EntryKeys.all.select { |c| c.to_s.start_with?('mailer.') }
9
+ .reject { |c| c == ::Avm::Instances::EntryKeys::MAILER_ID }
10
+ .each do |mailer_key|
11
+ define_method ::Avm::Entries::AutoValues::Entry.auto_value_method_name(mailer_key) do
12
+ mailer_auto_common(mailer_key)
13
+ end
14
+ end
15
+
16
+ def auto_mailer_id
17
+ inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
18
+ ::Avm::Instances::EntryKeys::MAILER_ID) ||
19
+ read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_ID)
20
+ end
21
+
22
+ private
23
+
24
+ def mailer_auto_common(mailer_key)
25
+ inherited_entry_value(::Avm::Instances::EntryKeys::MAILER_ID, mailer_key)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module AutoValues
7
+ module Source
8
+ def auto_source_instance_id
9
+ [application.id, ::Avm::Applications::Base::LocalInstance::LOCAL_INSTANCE_SUFFIX]
10
+ .join('_')
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module AutoValues
7
+ require_sub __FILE__, include_modules: true
8
+ common_concern
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_docker/executables'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Base
8
+ module Dockerizable
9
+ enable_simple_cache
10
+ attr_reader :docker_image_options
11
+
12
+ def docker_image_options=(options)
13
+ @docker_image_options = ::ActiveSupport::HashWithIndifferentAccess.new(options)
14
+ reset_cache
15
+ end
16
+
17
+ def docker_container_exist?
18
+ ::EacDocker::Executables.docker.command.append(
19
+ ['ps', '-qaf', "name=#{docker_container_name}"]
20
+ ).execute!.present?
21
+ end
22
+
23
+ def docker_container_name
24
+ id
25
+ end
26
+
27
+ private
28
+
29
+ def docker_container_uncached
30
+ ::Avm::Docker::Container.new(self)
31
+ end
32
+
33
+ def docker_image_uncached
34
+ r = docker_image_class.new(docker_image_options.fetch(:registry))
35
+ r.instance = self if r.respond_to?(:instance)
36
+ r.version = docker_image_options[:version] if docker_image_options.key?(:version)
37
+ r.snapshot = docker_image_options[:snapshot] if docker_image_options.key?(:snapshot)
38
+ r
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module EntryKeys
7
+ # @return [Enumerable<String>]
8
+ def entry_keys
9
+ ::Avm::Instances::EntryKeys.all
10
+ end
11
+
12
+ ::Avm::Instances::EntryKeys.all.each do |key|
13
+ method_name = key.to_s.variableize
14
+ define_method method_name do
15
+ read_entry(key)
16
+ end
17
+
18
+ define_method "#{method_name}_optional" do
19
+ read_entry_optional(key)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module Install
7
+ INSTALL_SCHEME_DEFAULT_VALUE = 'file'
8
+
9
+ common_concern do
10
+ uri_components_entries_values 'install', %w[data_path email groupname]
11
+ end
12
+
13
+ def install_data_path_inherited_value_proc(value)
14
+ "#{value}/#{id}"
15
+ end
16
+
17
+ def install_groupname_default_value
18
+ read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_USERNAME)
19
+ end
20
+
21
+ # @return [String]
22
+ def install_scheme_default_value
23
+ INSTALL_SCHEME_DEFAULT_VALUE
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Instances
5
+ class Base
6
+ module Processes
7
+ # @return [Array<Avm::Instances::Process>]
8
+ def available_processes
9
+ processes.select(&:available?)
10
+ end
11
+
12
+ def on_disabled_processes(&block)
13
+ available_processes.inject(block) do |a, e|
14
+ -> { e.on_disabled(&a) }
15
+ end.call
16
+ end
17
+
18
+ # @return [Array<Avm::Instances::Process>]
19
+ def processes
20
+ []
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Base
8
+ module Production
9
+ DEFAULT_PRODUCTION = true
10
+ PRODUCTION_KEY = 'production'
11
+
12
+ # @return [Boolean]
13
+ def default_production?
14
+ DEFAULT_PRODUCTION
15
+ end
16
+
17
+ # @return [Boolean]
18
+ def production?
19
+ if production_entry.found?
20
+ production_entry.value.to_bool
21
+ else
22
+ default_production?
23
+ end
24
+ end
25
+
26
+ # @return [Avm::Entries::Entry]
27
+ def production_entry
28
+ entry(PRODUCTION_KEY)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/runner/context'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Base
8
+ class SubcommandParent
9
+ include ::EacCli::Runner
10
+
11
+ enable_simple_cache
12
+ common_constructor :instance do
13
+ self.runner_context = ::EacCli::Runner::Context.new(self, argv: runner_argv)
14
+ end
15
+ for_context :instance
16
+
17
+ private
18
+
19
+ def runner_argv
20
+ [instance.class.name.split('::')[-2].dasherize, instance.id]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable'
4
+
5
+ module Avm
6
+ module Instances
7
+ class Base
8
+ module Web
9
+ common_concern do
10
+ uri_components_entries_values 'web'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end