eac_tools 0.126.0 → 0.126.1

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 (357) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +35 -24
  3. data/eac_tools.gemspec +2 -2
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +1 -1
  6. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +2 -2
  7. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +2 -8
  8. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +1 -1
  9. data/sub/avm-eac_webapp_base0/.gitignore +2 -0
  10. data/sub/avm-eac_webapp_base0/.gitrepo +7 -0
  11. data/sub/avm-eac_webapp_base0/.rspec +1 -0
  12. data/sub/avm-eac_webapp_base0/.rubocop.yml +3 -0
  13. data/sub/avm-eac_webapp_base0/Gemfile +8 -0
  14. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +25 -0
  15. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +23 -0
  16. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +44 -0
  17. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +17 -0
  18. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +42 -0
  19. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +19 -0
  20. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +25 -0
  21. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +17 -0
  22. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +23 -0
  23. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_base.rb +28 -0
  24. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_host.rb +72 -0
  25. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/apache_path.rb +37 -0
  26. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/apache.rb +42 -0
  27. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy.rb +24 -0
  28. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy_info.rb +27 -0
  29. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +24 -0
  30. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base.rb +37 -0
  31. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb +25 -0
  32. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/build.rb +61 -0
  33. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/info.rb +44 -0
  34. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/scm.rb +88 -0
  35. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb +53 -0
  36. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb +18 -0
  37. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +72 -0
  38. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy_info.rb +35 -0
  39. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/processes/web_server.rb +34 -0
  40. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_host.rb +34 -0
  41. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/apache_path.rb +38 -0
  42. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy.rb +47 -0
  43. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/runners/deploy_info.rb +24 -0
  44. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/sources/base.rb +13 -0
  45. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +7 -0
  46. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0.rb +9 -0
  47. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
  48. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
  49. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
  50. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
  51. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.source +8 -0
  52. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.erb.target +8 -0
  53. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.source +5 -0
  54. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files/html_code.html.target +5 -0
  55. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
  56. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.source +29 -0
  57. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files/javascript_code1.js.target +21 -0
  58. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
  59. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.source +8 -0
  60. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files/json_code.json.target +7 -0
  61. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
  62. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.source +11 -0
  63. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files/xml_code.xml.target +9 -0
  64. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/instances/base_spec.rb +11 -0
  65. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/sources/base_spec.rb +7 -0
  66. data/sub/avm-eac_webapp_base0/spec/spec_helper.rb +5 -0
  67. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_host/no_ssl.conf +11 -0
  68. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/apache_path/default.conf +7 -0
  69. data/sub/avm-eac_webapp_base0/template/avm/eac_webapp_base0/instances/deploy/.keep +1 -0
  70. data/sub/eac_ruby_utils/.avm.yaml +3 -0
  71. data/sub/eac_ruby_utils/.gitignore +4 -0
  72. data/sub/eac_ruby_utils/.gitrepo +7 -0
  73. data/sub/eac_ruby_utils/.rspec +1 -0
  74. data/sub/eac_ruby_utils/.rubocop.yml +3 -0
  75. data/sub/eac_ruby_utils/.yardopts +1 -0
  76. data/sub/eac_ruby_utils/Gemfile +8 -0
  77. data/sub/eac_ruby_utils/MIT-LICENCE +16 -0
  78. data/sub/eac_ruby_utils/README.rdoc +3 -0
  79. data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +29 -0
  80. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +100 -0
  81. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +25 -0
  82. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +57 -0
  83. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/boolean_accessor.rb +16 -0
  84. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb +20 -0
  85. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/common_accessor.rb +30 -0
  86. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/enumerable_accessor.rb +52 -0
  87. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/hash_accessor.rb +57 -0
  88. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/instance_methods.rb +21 -0
  89. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +25 -0
  90. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable.rb +16 -0
  91. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_instance_method.rb +46 -0
  92. data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_static_method.rb +12 -0
  93. data/sub/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb +80 -0
  94. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit.rb +47 -0
  95. data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit_array.rb +81 -0
  96. data/sub/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +19 -0
  97. data/sub/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +31 -0
  98. data/sub/eac_ruby_utils/lib/eac_ruby_utils/by_reference.rb +23 -0
  99. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte.rb +106 -0
  100. data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte_array.rb +36 -0
  101. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/class_setup.rb +53 -0
  102. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/module_setup.rb +42 -0
  103. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb +20 -0
  104. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb +36 -0
  105. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb +39 -0
  106. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb +64 -0
  107. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb +55 -0
  108. data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb +95 -0
  109. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compact.rb +32 -0
  110. data/sub/eac_ruby_utils/lib/eac_ruby_utils/compare_by.rb +28 -0
  111. data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +33 -0
  112. data/sub/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +19 -0
  113. data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +6 -0
  114. data/sub/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb +51 -0
  115. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enum.rb +102 -0
  116. data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +42 -0
  117. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/append_command_options.rb +38 -0
  118. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/concat.rb +41 -0
  119. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/debugging.rb +19 -0
  120. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/execution.rb +62 -0
  121. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/extra_options.rb +28 -0
  122. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command.rb +45 -0
  123. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_env.rb +28 -0
  124. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb +27 -0
  125. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/extra_options.rb +23 -0
  126. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +67 -0
  127. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/composite_command.rb +45 -0
  128. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +93 -0
  129. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_error.rb +8 -0
  130. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb +45 -0
  131. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/file.rb +22 -0
  132. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/local_env.rb +17 -0
  133. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/process.rb +27 -0
  134. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/spawn.rb +32 -0
  135. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/dasho_options.rb +51 -0
  136. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/identity_file.rb +26 -0
  137. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/quiet.rb +25 -0
  138. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb +36 -0
  139. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb +74 -0
  140. data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb +23 -0
  141. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +57 -0
  142. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb +35 -0
  143. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb +16 -0
  144. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb +41 -0
  145. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb +52 -0
  146. data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs.rb +11 -0
  147. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/dependencies.rb +33 -0
  148. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/paths_to_require.rb +57 -0
  149. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb +50 -0
  150. data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb +34 -0
  151. data/sub/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +29 -0
  152. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/class_methods.rb +14 -0
  153. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/instance_methods.rb +30 -0
  154. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/integer_list.rb +23 -0
  155. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/item.rb +48 -0
  156. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +129 -0
  157. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/lists.rb +51 -0
  158. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/string_list.rb +19 -0
  159. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/symbol_list.rb +19 -0
  160. data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable.rb +17 -0
  161. data/sub/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +48 -0
  162. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +4 -0
  163. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +47 -0
  164. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +74 -0
  165. data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +9 -0
  166. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +34 -0
  167. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +20 -0
  168. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +19 -0
  169. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +9 -0
  170. data/sub/eac_ruby_utils/lib/eac_ruby_utils/objects_table.rb +41 -0
  171. data/sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb +62 -0
  172. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patch_module.rb +21 -0
  173. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri/query_value.rb +37 -0
  174. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri.rb +4 -0
  175. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable.rb +4 -0
  176. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/abstract.rb +9 -0
  177. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/acts_as_instance_method.rb +11 -0
  178. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/acts_as_static_method.rb +11 -0
  179. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/common_constructor.rb +9 -0
  180. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/method_class.rb +10 -0
  181. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/self_included_modules.rb +7 -0
  182. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +10 -0
  183. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/static_method_class.rb +12 -0
  184. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class.rb +4 -0
  185. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable/boolean_combinations.rb +45 -0
  186. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable.rb +4 -0
  187. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/current.rb +9 -0
  188. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/stopped.rb +14 -0
  189. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator.rb +4 -0
  190. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/if_key.rb +12 -0
  191. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/options_consumer.rb +10 -0
  192. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/sym_keys_hash.rb +10 -0
  193. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/to_struct.rb +10 -0
  194. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash.rb +5 -0
  195. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer/rjust_zero.rb +13 -0
  196. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer.rb +4 -0
  197. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/ibr.rb +10 -0
  198. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +10 -0
  199. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel.rb +4 -0
  200. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb +10 -0
  201. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_abstract.rb +15 -0
  202. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +10 -0
  203. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +9 -0
  204. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/compare_by.rb +9 -0
  205. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +11 -0
  206. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/enable_memoized.rb +10 -0
  207. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +9 -0
  208. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +11 -0
  209. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb +10 -0
  210. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/module_parent.rb +5 -0
  211. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch_self.rb +9 -0
  212. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb +9 -0
  213. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb +10 -0
  214. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +9 -0
  215. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb +4 -0
  216. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb +25 -0
  217. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/call_if_proc.rb +11 -0
  218. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/compact.rb +20 -0
  219. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +55 -0
  220. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/i18n_translate.rb +11 -0
  221. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +17 -0
  222. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_present.rb +19 -0
  223. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_respond.rb +22 -0
  224. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/recursive_build.rb +12 -0
  225. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +12 -0
  226. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_pathname.rb +15 -0
  227. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_sym_by_eac.rb +11 -0
  228. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_uri.rb +15 -0
  229. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb +5 -0
  230. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/assert_parent.rb +12 -0
  231. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_noext.rb +9 -0
  232. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_sub.rb +13 -0
  233. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/child_of.rb +16 -0
  234. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/if_exist.rb +10 -0
  235. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/mkpath_s.rb +12 -0
  236. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +11 -0
  237. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/readlink_r.rb +11 -0
  238. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/reqdir_glob.rb +13 -0
  239. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname.rb +4 -0
  240. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/if_match.rb +16 -0
  241. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +10 -0
  242. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp.rb +4 -0
  243. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/delimited.rb +16 -0
  244. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +11 -0
  245. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb +4 -0
  246. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +11 -0
  247. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time.rb +4 -0
  248. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb +4 -0
  249. data/sub/eac_ruby_utils/lib/eac_ruby_utils/recursive_builder.rb +51 -0
  250. data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +39 -0
  251. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +93 -0
  252. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +64 -0
  253. data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +11 -0
  254. data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup/ignore.rb +57 -0
  255. data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup.rb +108 -0
  256. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/default_setup.rb +23 -0
  257. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/conditionals.rb +17 -0
  258. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/setup_manager.rb +17 -0
  259. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +27 -0
  260. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup_manager.rb +49 -0
  261. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/stub_speaker.rb +39 -0
  262. data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec.rb +9 -0
  263. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +32 -0
  264. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_clean_environment.rb +71 -0
  265. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects/replace_instance_method.rb +36 -0
  266. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects.rb +52 -0
  267. data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby.rb +9 -0
  268. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +79 -0
  269. data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +50 -0
  270. data/sub/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +77 -0
  271. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +64 -0
  272. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +37 -0
  273. data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +16 -0
  274. data/sub/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb +70 -0
  275. data/sub/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +63 -0
  276. data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +6 -0
  277. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +5 -0
  278. data/sub/eac_ruby_utils/lib/eac_ruby_utils/wildcards.rb +26 -0
  279. data/sub/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb +107 -0
  280. data/sub/eac_ruby_utils/lib/eac_ruby_utils.rb +14 -0
  281. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +91 -0
  282. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/array_accessor_spec.rb +41 -0
  283. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +55 -0
  284. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/hash_accessor_spec.rb +40 -0
  285. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +41 -0
  286. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_instance_method_spec.rb +11 -0
  287. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_static_method_spec.rb +12 -0
  288. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb +15 -0
  289. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/bit_array_spec.rb +20 -0
  290. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +14 -0
  291. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/byte_spec.rb +52 -0
  292. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb +63 -0
  293. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb +149 -0
  294. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compact_spec.rb +19 -0
  295. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb +37 -0
  296. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb +58 -0
  297. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb +42 -0
  298. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +48 -0
  299. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/base_example.rb +95 -0
  300. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/local_env_spec.rb +9 -0
  301. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/ssh_env_spec.rb +16 -0
  302. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb +34 -0
  303. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb +23 -0
  304. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb +16 -0
  305. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/directory_spec.rb +27 -0
  306. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb +50 -0
  307. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/gems_registry_spec.rb +14 -0
  308. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +14 -0
  309. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb +223 -0
  310. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb +15 -0
  311. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +55 -0
  312. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +55 -0
  313. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb +78 -0
  314. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/addressable/uri/query_value_spec.rb +23 -0
  315. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb +23 -0
  316. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_abstract_spec.rb +11 -0
  317. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_instance_method_spec.rb +11 -0
  318. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_static_method_spec.rb +12 -0
  319. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/self_included_modules_spec.rb +28 -0
  320. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerable/boolean_combinations_spec.rb +37 -0
  321. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/current_spec.rb +24 -0
  322. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/stopped_spec.rb +30 -0
  323. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/if_key_spec.rb +21 -0
  324. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/options_consumer_spec.rb +15 -0
  325. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb +11 -0
  326. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/integer/rjust_zero_spec.rb +18 -0
  327. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/compare_by_spec.rb +35 -0
  328. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb +13 -0
  329. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb +13 -0
  330. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb +13 -0
  331. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/call_if_proc_spec.rb +9 -0
  332. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/compact_spec.rb +18 -0
  333. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb +11 -0
  334. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/recursive_build_spec.rb +60 -0
  335. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template +1 -0
  336. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/assert_parent_spec.rb +19 -0
  337. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_noext_spec.rb +24 -0
  338. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb +15 -0
  339. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/child_of_spec.rb +24 -0
  340. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +31 -0
  341. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/string/delimited_spec.rb +32 -0
  342. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/recursive_builder_spec.rb +63 -0
  343. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_module_a.rb +6 -0
  344. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_not_module.rb +6 -0
  345. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec.rb +17 -0
  346. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/rspec/setup/setup_manager_spec.rb +14 -0
  347. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_clean_environment_spec.rb +29 -0
  348. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_replace_objects_spec.rb +63 -0
  349. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +62 -0
  350. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +127 -0
  351. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb +55 -0
  352. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/wildcards_spec.rb +25 -0
  353. data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb +73 -0
  354. data/sub/eac_ruby_utils/spec/locales/pt-BR.yml +58 -0
  355. data/sub/eac_ruby_utils/spec/spec_helper/acts_as_method_example.rb +41 -0
  356. data/sub/eac_ruby_utils/spec/spec_helper.rb +13 -0
  357. metadata +353 -11
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Base < ::Avm::Instances::Base
7
+ module Deploy
8
+ common_concern
9
+
10
+ # @param options [Class<Avm::EacWebappBase0::Instances::Deploy>]
11
+ def deploy_class
12
+ application.stereotype.namespace_module.const_get('Instances').const_get('Deploy')
13
+ end
14
+
15
+ # @param options [Hash]
16
+ # return [Avm::EacWebappBase0::Instances::Deploy]
17
+ def deploy_instance(**options)
18
+ deploy_class.new(self, options)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Base < ::Avm::Instances::Base
7
+ module DeployInfo
8
+ common_concern
9
+
10
+ DEPLOY_INFO_SUBPATH = '.deploy.yaml'
11
+
12
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
13
+ def deploy_info
14
+ ::Avm::EacWebappBase0::Instances::DeployInfo.from_string(
15
+ host_env.command('cat', deploy_info_path).execute!
16
+ )
17
+ end
18
+
19
+ # @return [Pathname]
20
+ def deploy_info_path
21
+ install_path.to_pathname.join(DEPLOY_INFO_SUBPATH)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Base < ::Avm::Instances::Base
7
+ module Install
8
+ common_concern do
9
+ uri_components_entries_values 'install', %w[apache_resource_name request_test_timeout]
10
+ end
11
+
12
+ def install_apache_resource_name_default_value
13
+ id
14
+ end
15
+
16
+ # @return [Integer]
17
+ def install_request_test_timeout_default_value
18
+ ::EacEnvs::Http::Request::FaradayConnection::DEFAULT_TIMEOUT.in_seconds
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Base < ::Avm::Instances::Base
7
+ require_sub __FILE__, include_modules: true
8
+ include ::Avm::EacPostgresqlBase0::InstanceWith
9
+
10
+ enable_simple_cache
11
+
12
+ def run_subcommand(subcommand_class, argv)
13
+ subcommand_class.create(
14
+ argv: argv,
15
+ parent: ::Avm::Instances::Base::SubcommandParent.new(self)
16
+ ).run
17
+ end
18
+
19
+ def database_unit
20
+ pg_data_unit
21
+ end
22
+
23
+ # @return [Array<Avm::Instances::Process>]
24
+ def processes
25
+ super + [::Avm::EacWebappBase0::Instances::Processes::WebServer.new(self)]
26
+ end
27
+
28
+ private
29
+
30
+ # @return [Avm::EacUbuntuBase0::Instances::Base]
31
+ def platform_instance_uncached
32
+ ::Avm::EacUbuntuBase0::Instances::Base.by_id(id)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module AppendedDirectories
8
+ APPENDED_DIRECTORIES_ENTRY_KEY = 'deploy.appended_directories'
9
+
10
+ def appended_directories
11
+ appended_directories_from_instance_entry + appended_directories_from_options
12
+ end
13
+
14
+ def appended_directories_from_instance_entry
15
+ ::Avm::PathString.paths(instance.read_entry_optional(APPENDED_DIRECTORIES_ENTRY_KEY))
16
+ end
17
+
18
+ def appended_directories_from_options
19
+ options[OPTION_APPENDED_DIRECTORIES] || []
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module Build
8
+ enable_memoized
9
+
10
+ private
11
+
12
+ attr_accessor :build_dir, :source_dir
13
+
14
+ def append_instance_content
15
+ ::Avm::Files::Appender
16
+ .new
17
+ .variables_source_set(variables_source)
18
+ .append_templatized_directory(eac_template)
19
+ .append_templatized_directories(appended_directories)
20
+ .append_file_content(version_target_path, version)
21
+ .write_appended_on(build_dir)
22
+ end
23
+
24
+ def build_dir_env
25
+ ::EacRubyUtils::Envs.local
26
+ end
27
+
28
+ def create_build_dir
29
+ self.build_dir = ::EacRubyUtils::Fs::Temp.directory
30
+ end
31
+
32
+ def create_source_dir
33
+ self.source_dir = ::EacRubyUtils::Fs::Temp.directory
34
+ infom 'Writing Git source code...'
35
+ scm.commit(commit_reference).deploy_to_env_path(
36
+ build_dir_env,
37
+ source_dir
38
+ ).variables_source_set(variables_source).run
39
+ end
40
+
41
+ def remove_build_dir
42
+ build_dir&.remove
43
+ end
44
+
45
+ def remove_source_dir
46
+ source_dir&.remove
47
+ end
48
+
49
+ # @return [Avm::Sources::Base]
50
+ memoize def source
51
+ instance.application.local_source.class.new(source_dir)
52
+ end
53
+
54
+ def build_content
55
+ ::FileUtils.copy_entry(source_dir.to_path, build_dir.to_path)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module Info
8
+ # @return [Hash]
9
+ def deploy_info
10
+ ::Avm::EacWebappBase0::Instances::DeployInfo.from_hash(
11
+ {
12
+ instance_id: instance.id,
13
+ time: ::Time.now,
14
+ commit_id: commit_reference,
15
+ commit_refs: version_git_refs,
16
+ version: version_number
17
+ }
18
+ )
19
+ end
20
+
21
+ # @return [String]
22
+ def version
23
+ deploy_info.to_yaml
24
+ end
25
+
26
+ def version_git_refs
27
+ git_remote_hashs.select { |_name, sha1| sha1 == commit_reference }.keys
28
+ .map { |ref| ref.gsub(%r{\Arefs/}, '') }.reject { |ref| ref == 'HEAD' }
29
+ end
30
+
31
+ # @return [String, nil]
32
+ def version_number
33
+ instance.application.local_source.version.if_present(&:to_s)
34
+ end
35
+
36
+ # @return [String]
37
+ def version_target_path
38
+ ::Avm::EacWebappBase0::Instances::Base::DeployInfo::DEPLOY_INFO_SUBPATH
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module Scm
8
+ DEFAULT_REMOTE_NAME = 'origin'
9
+ DEFAULT_REMOTE_READ = true
10
+ DEFAULT_REMOTE_WRITE = true
11
+
12
+ def commit_reference_uncached
13
+ git_fetch
14
+ r = git.rev_parse(git_reference_found)
15
+ return r if r
16
+
17
+ raise ::Avm::Result::Error, "No commit SHA1 found for \"#{git_reference_found}\""
18
+ end
19
+
20
+ def git_fetch_uncached
21
+ return unless remote_read?
22
+
23
+ infom "Fetching remote \"#{git_remote_name}\" from \"#{git_repository_path}\"..."
24
+ git.remote(git_remote_name).fetch
25
+ end
26
+
27
+ def git_reference
28
+ options[OPTION_REFERENCE] || DEFAULT_REFERENCE
29
+ end
30
+
31
+ def git_reference_found_uncached
32
+ %w[git_reference instance_branch master_branch].map { |b| send(b) }.find(&:present?) ||
33
+ raise(
34
+ ::Avm::Result::Error,
35
+ 'No git reference found (Searched for option, instance and master)'
36
+ )
37
+ end
38
+
39
+ def git_remote_hashs_uncached
40
+ return {} unless remote_read?
41
+
42
+ git.remote(git_remote_name).ls.hashes
43
+ end
44
+
45
+ def git_remote_name
46
+ DEFAULT_REMOTE_NAME
47
+ end
48
+
49
+ def git_repository_path
50
+ instance.source_instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)
51
+ end
52
+
53
+ # @return [EacGit::Local]
54
+ def git_uncached
55
+ scm.git_repo
56
+ end
57
+
58
+ def instance_branch
59
+ remote_branch(instance.id)
60
+ end
61
+
62
+ def remote_branch(name)
63
+ git_remote_hashs.key?("refs/heads/#{name}") ? "#{git_remote_name}/#{name}" : nil
64
+ end
65
+
66
+ def master_branch
67
+ remote_branch('master')
68
+ end
69
+
70
+ # @return [Boolean]
71
+ def remote_read?
72
+ options.if_key(OPTION_REMOTE_READ, DEFAULT_REMOTE_READ).to_bool
73
+ end
74
+
75
+ # @return [Boolean]
76
+ def remote_write?
77
+ options.if_key(OPTION_REMOTE_WRITE, DEFAULT_REMOTE_WRITE).to_bool
78
+ end
79
+
80
+ # @return [Avm::Scms::Base]
81
+ def scm
82
+ instance.application.local_source.scm
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ class SetupFilesUnit < ::SimpleDelegator
8
+ enable_method_class
9
+ attr_reader :data_key, :fs_path_subpath
10
+
11
+ def initialize(deploy, data_key, fs_path_subpath)
12
+ super(deploy)
13
+ @data_key = data_key
14
+ @fs_path_subpath = fs_path_subpath
15
+ end
16
+
17
+ def result
18
+ assert_source_directory
19
+ link_source_target
20
+ end
21
+
22
+ def assert_source_directory
23
+ infom "Asserting \"#{data_key}\" source directory..."
24
+ instance.host_env.command('mkdir', '-p', source_path).execute!
25
+ end
26
+
27
+ def source_path
28
+ ::File.join(instance.install_data_path, data_key.to_s)
29
+ end
30
+
31
+ def target_path
32
+ ::File.join(instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH),
33
+ fs_path_subpath.to_s)
34
+ end
35
+
36
+ def link_source_target
37
+ infom "Linking \"#{data_key}\" directory..."
38
+ return unless remove_target
39
+
40
+ instance.host_env.command('ln', '-s', source_path, target_path).execute!
41
+ end
42
+
43
+ private
44
+
45
+ # @return [Boolean]
46
+ def remove_target # rubocop:disable Naming/PredicateMethod
47
+ instance.host_env.command('rm', '-rf', target_path).execute.fetch(:exit_code).zero?
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class Deploy
7
+ module WriteOnTarget
8
+ def write_on_target
9
+ ::Avm::Files::Deploy.new(
10
+ instance.host_env,
11
+ instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)
12
+ ).append_plain_directory(build_dir).run
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ class Deploy
9
+ require_sub __FILE__, include_modules: true, require_mode: :kernel
10
+
11
+ DEFAULT_REFERENCE = 'HEAD'
12
+
13
+ REQUEST_TEST_JOB = 'request_test'
14
+ JOBS = (%w[create_build_dir create_source_dir build_content append_instance_content
15
+ write_on_target setup_files_units assert_instance_branch] +
16
+ [REQUEST_TEST_JOB]).freeze
17
+
18
+ include ::Avm::Entries::Jobs::Base
19
+
20
+ lists.add_symbol :option, :appended_directories, :no_request_test, :reference,
21
+ :remote_read, :remote_write
22
+
23
+ def option_list
24
+ ::Avm::EacWebappBase0::Instances::Deploy.lists.option
25
+ end
26
+
27
+ def run
28
+ super
29
+ ensure
30
+ remove_build_dir
31
+ remove_source_dir
32
+ end
33
+
34
+ def start_banner
35
+ infov 'Instance', instance
36
+ infov 'Git reference (User)', git_reference.if_present('- BLANK -')
37
+ infov 'Git remote name', git_remote_name
38
+ infov 'Git reference (Found)', git_reference_found
39
+ infov 'Git commit SHA1', commit_reference
40
+ infov 'Appended directories', appended_directories
41
+ end
42
+
43
+ def setup_files_units
44
+ instance.data_package.units.values.map(&:installation_files_data).select(&:present?) # rubocop:disable Rails/CompactBlank
45
+ .each { |unit_install| setup_files_unit(unit_install.key, unit_install.subpath) }
46
+ end
47
+
48
+ def assert_instance_branch
49
+ return unless remote_write?
50
+
51
+ infom 'Setting instance branch...'
52
+ git.command('push', git_remote_name, "#{commit_reference}:refs/heads/#{instance.id}",
53
+ '-f').execute!
54
+ end
55
+
56
+ def request_test
57
+ infom 'Requesting web interface...'
58
+ ::EacEnvs::Http::Request.new.url(instance.read_entry('web.url'))
59
+ .timeout(instance.install_request_test_timeout).response.raise_unless_200
60
+ end
61
+
62
+ protected
63
+
64
+ def jobs
65
+ r = super
66
+ r.delete(REQUEST_TEST_JOB) if options[OPTION_NO_REQUEST_TEST]
67
+ r
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ class DeployInfo
7
+ class << self
8
+ # @param hash [Hash]
9
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
10
+ def from_hash(hash)
11
+ new(hash)
12
+ end
13
+
14
+ # @return string [String]
15
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
16
+ def from_string(string)
17
+ from_hash(::EacRubyUtils::Yaml.load(string))
18
+ end
19
+ end
20
+
21
+ common_constructor :data do
22
+ self.data = data.with_indifferent_access
23
+ end
24
+
25
+ # @return [Hash]
26
+ delegate :to_h, to: :data
27
+
28
+ # @return [String]
29
+ def to_yaml
30
+ ::EacRubyUtils::Yaml.dump(to_h)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ module Processes
7
+ class WebServer < ::Avm::Instances::Process
8
+ def available?
9
+ instance.apache_resource.present?
10
+ end
11
+
12
+ def enable
13
+ apache_resource_change(__method__)
14
+ end
15
+
16
+ def enabled?
17
+ instance.apache_resource.enabled?
18
+ end
19
+
20
+ def disable
21
+ apache_resource_change(__method__)
22
+ end
23
+
24
+ private
25
+
26
+ def apache_resource_change(action)
27
+ instance.apache_resource.send(action)
28
+ instance.platform_instance.apache.service(:reload)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ module Runners
7
+ class ApacheHost
8
+ runner_with :help do
9
+ desc 'Configure Apache virtual host for instance.'
10
+ bool_opt '-c', '--certbot', 'Install certbot.'
11
+ end
12
+
13
+ def run
14
+ result = stereotype_apache_host_class.new(runner_context.call(:instance),
15
+ stereotype_apache_host_options).run
16
+ if result.error?
17
+ fatal_error result.to_s
18
+ else
19
+ infov 'Result', result.label
20
+ end
21
+ end
22
+
23
+ def stereotype_apache_host_class
24
+ "#{runner_context.call(:instance).class.name.deconstantize}::ApacheHost".constantize
25
+ end
26
+
27
+ def stereotype_apache_host_options
28
+ { certbot: parsed.certbot? }
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ module Runners
7
+ class ApachePath
8
+ runner_with :help do
9
+ desc 'Configure Apache path configuration for instance.'
10
+ end
11
+
12
+ def run
13
+ infov 'ApachePath class', stereotype_apache_path_class
14
+ if result.error?
15
+ fatal_error result.to_s
16
+ else
17
+ infov 'Result', result.label
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def apache_path_uncached
24
+ stereotype_apache_path_class.new(runner_context.call(:instance))
25
+ end
26
+
27
+ def result_uncached
28
+ apache_path.run
29
+ end
30
+
31
+ def stereotype_apache_path_class
32
+ runner_context.call(:instance).apache_path_class
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacWebappBase0
5
+ module Instances
6
+ module Runners
7
+ class Deploy
8
+ runner_with :help do
9
+ desc 'Deploy for instance.'
10
+ arg_opt '-r', '--reference', 'Git reference to deploy.'
11
+ arg_opt '-a', '--append-dirs', 'Append directories to deploy (List separated by ":").'
12
+ bool_opt '-T', '--no-request-test', 'Do not test web interface after deploy.'
13
+ bool_opt '--no-remote', 'Shortcut to "--no-remote-read --no-remote-write"'
14
+ bool_opt '--no-remote-read', 'Do not attempt to read on remote repository.'
15
+ bool_opt '--no-remote-write', 'Do not attempt to write on remote repository.'
16
+ end
17
+
18
+ def run
19
+ result = runner_context.call(:instance).deploy_instance(**deploy_options).run
20
+ if result.error?
21
+ fatal_error result.to_s
22
+ else
23
+ infov 'Result', result.label
24
+ end
25
+ end
26
+
27
+ def deploy_options
28
+ { reference: parsed.reference,
29
+ appended_directories: ::Avm::PathString.paths(parsed.append_dirs),
30
+ no_request_test: parsed.no_request_test?, remote_read: remote_read?,
31
+ remote_write: remote_write? }
32
+ end
33
+
34
+ # @return [Boolean]
35
+ def remote_read?
36
+ !(parsed.no_remote_read? || parsed.no_remote?)
37
+ end
38
+
39
+ # @return [Boolean]
40
+ def remote_write?
41
+ !(parsed.no_remote_write? || parsed.no_remote?)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end