eac_tools 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1077) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +306 -0
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm/Gemfile +8 -0
  6. data/sub/avm/avm.gemspec +26 -0
  7. data/sub/avm/lib/avm/data/instance/files_unit.rb +40 -0
  8. data/sub/avm/lib/avm/data/instance/package.rb +18 -0
  9. data/sub/avm/lib/avm/data/instance/unit.rb +17 -0
  10. data/sub/avm/lib/avm/data/instance.rb +11 -0
  11. data/sub/avm/lib/avm/data/package/dump.rb +119 -0
  12. data/sub/avm/lib/avm/data/package/load.rb +48 -0
  13. data/sub/avm/lib/avm/data/package.rb +42 -0
  14. data/sub/avm/lib/avm/data/rotate.rb +107 -0
  15. data/sub/avm/lib/avm/data/unit.rb +94 -0
  16. data/sub/avm/lib/avm/docker/container.rb +50 -0
  17. data/sub/avm/lib/avm/docker/image.rb +71 -0
  18. data/sub/avm/lib/avm/docker/runner.rb +125 -0
  19. data/sub/avm/lib/avm/docker.rb +9 -0
  20. data/sub/avm/lib/avm/executables.rb +24 -0
  21. data/sub/avm/lib/avm/instances/application.rb +29 -0
  22. data/sub/avm/lib/avm/instances/base/auto_values/access.rb +40 -0
  23. data/sub/avm/lib/avm/instances/base/auto_values/admin.rb +19 -0
  24. data/sub/avm/lib/avm/instances/base/auto_values/data.rb +26 -0
  25. data/sub/avm/lib/avm/instances/base/auto_values/database.rb +76 -0
  26. data/sub/avm/lib/avm/instances/base/auto_values/filesystem.rb +43 -0
  27. data/sub/avm/lib/avm/instances/base/auto_values/mailer.rb +34 -0
  28. data/sub/avm/lib/avm/instances/base/auto_values/ruby.rb +15 -0
  29. data/sub/avm/lib/avm/instances/base/auto_values/source.rb +15 -0
  30. data/sub/avm/lib/avm/instances/base/auto_values/system.rb +23 -0
  31. data/sub/avm/lib/avm/instances/base/auto_values/web.rb +46 -0
  32. data/sub/avm/lib/avm/instances/base/auto_values.rb +21 -0
  33. data/sub/avm/lib/avm/instances/base/dockerizable.rb +45 -0
  34. data/sub/avm/lib/avm/instances/base/entry_keys.rb +22 -0
  35. data/sub/avm/lib/avm/instances/base.rb +64 -0
  36. data/sub/avm/lib/avm/instances/docker_image.rb +15 -0
  37. data/sub/avm/lib/avm/instances/entries.rb +43 -0
  38. data/sub/avm/lib/avm/instances/entry.rb +60 -0
  39. data/sub/avm/lib/avm/instances/entry_keys.rb +60 -0
  40. data/sub/avm/lib/avm/instances/runner.rb +39 -0
  41. data/sub/avm/lib/avm/instances.rb +8 -0
  42. data/sub/avm/lib/avm/jobs/base.rb +63 -0
  43. data/sub/avm/lib/avm/jobs/variables_source.rb +22 -0
  44. data/sub/avm/lib/avm/jobs.rb +9 -0
  45. data/sub/avm/lib/avm/launcher/errors/base.rb +10 -0
  46. data/sub/avm/lib/avm/launcher/errors/non_project.rb +15 -0
  47. data/sub/avm/lib/avm/launcher/paths/real.rb +44 -0
  48. data/sub/avm/lib/avm/launcher/publish/check_result.rb +67 -0
  49. data/sub/avm/lib/avm/path_string.rb +27 -0
  50. data/sub/avm/lib/avm/registry/base.rb +71 -0
  51. data/sub/avm/lib/avm/registry/with_path.rb +23 -0
  52. data/sub/avm/lib/avm/registry.rb +39 -0
  53. data/sub/avm/lib/avm/result.rb +86 -0
  54. data/sub/avm/lib/avm/rspec/setup.rb +22 -0
  55. data/sub/avm/lib/avm/rspec/shared_examples/in_avm_registry.rb +11 -0
  56. data/sub/avm/lib/avm/rspec/shared_examples/not_in_avm_registry.rb +14 -0
  57. data/sub/avm/lib/avm/rspec.rb +9 -0
  58. data/sub/avm/lib/avm/runners/base.rb +27 -0
  59. data/sub/avm/lib/avm/scms/base.rb +41 -0
  60. data/sub/avm/lib/avm/scms/commit.rb +43 -0
  61. data/sub/avm/lib/avm/scms/inflector.rb +22 -0
  62. data/sub/avm/lib/avm/scms/null.rb +14 -0
  63. data/sub/avm/lib/avm/self/docker_image.rb +14 -0
  64. data/sub/avm/lib/avm/self/instance/entry_keys.rb +12 -0
  65. data/sub/avm/lib/avm/self/instance.rb +31 -0
  66. data/sub/avm/lib/avm/sources/base/configuration.rb +55 -0
  67. data/sub/avm/lib/avm/sources/base/instance.rb +28 -0
  68. data/sub/avm/lib/avm/sources/base/locale.rb +26 -0
  69. data/sub/avm/lib/avm/sources/base/parent.rb +31 -0
  70. data/sub/avm/lib/avm/sources/base/runners.rb +47 -0
  71. data/sub/avm/lib/avm/sources/base/subs.rb +55 -0
  72. data/sub/avm/lib/avm/sources/base/subs_paths.rb +32 -0
  73. data/sub/avm/lib/avm/sources/base/testing.rb +27 -0
  74. data/sub/avm/lib/avm/sources/base.rb +48 -0
  75. data/sub/avm/lib/avm/sources/configuration/rubocop.rb +26 -0
  76. data/sub/avm/lib/avm/sources/configuration.rb +59 -0
  77. data/sub/avm/lib/avm/sources/tester.rb +24 -0
  78. data/sub/avm/lib/avm/sources/tests/builder.rb +83 -0
  79. data/sub/avm/lib/avm/sources/tests/performer.rb +35 -0
  80. data/sub/avm/lib/avm/sources/tests/result.rb +15 -0
  81. data/sub/avm/lib/avm/sources/tests/single.rb +56 -0
  82. data/sub/avm/lib/avm/sources/tests.rb +11 -0
  83. data/sub/avm/lib/avm/sources.rb +9 -0
  84. data/sub/avm/lib/avm/sync.rb +94 -0
  85. data/sub/avm/lib/avm/version.rb +5 -0
  86. data/sub/avm/lib/avm/version_number.rb +45 -0
  87. data/sub/avm/lib/avm.rb +7 -0
  88. data/sub/avm/spec/lib/avm/scms/base_spec.rb +7 -0
  89. data/sub/avm/spec/lib/avm/sources/base_spec.rb +7 -0
  90. data/sub/avm/spec/rubocop_spec.rb +3 -0
  91. data/sub/avm/spec/spec_helper.rb +4 -0
  92. data/sub/avm-eac_generic_base0/Gemfile +5 -0
  93. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +19 -0
  94. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base/version_bump.rb +35 -0
  95. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/base.rb +25 -0
  96. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources/tester.rb +56 -0
  97. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/sources.rb +11 -0
  98. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +7 -0
  99. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0.rb +9 -0
  100. data/sub/avm-eac_generic_base0/locale/en.yml +6 -0
  101. data/sub/avm-eac_generic_base0/locale/pt-BR.yml +6 -0
  102. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/sources/base_spec.rb +7 -0
  103. data/sub/avm-eac_generic_base0/spec/rubocop_spec.rb +3 -0
  104. data/sub/avm-eac_generic_base0/spec/spec_helper.rb +4 -0
  105. data/sub/avm-eac_rails_base1/Gemfile +5 -0
  106. data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +20 -0
  107. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/apache_host.rb +17 -0
  108. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instance.rb +25 -0
  109. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/bundle.rb +26 -0
  110. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/code_runner.rb +26 -0
  111. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/log.rb +43 -0
  112. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/logs/clear.rb +26 -0
  113. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/logs.rb +18 -0
  114. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/rails_server.rb +32 -0
  115. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/tasks_scheduler/systemd_unit.rb +46 -0
  116. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner/tasks_scheduler.rb +17 -0
  117. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner.rb +12 -0
  118. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/bundle.rb +27 -0
  119. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/rails_environment.rb +47 -0
  120. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/sources/base.rb +27 -0
  121. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit/service.rb +70 -0
  122. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit/tasks_scheduler_command.rb +29 -0
  123. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/systemd_unit.rb +57 -0
  124. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +7 -0
  125. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1.rb +9 -0
  126. data/sub/avm-eac_rails_base1/spec/rubocop_spec.rb +3 -0
  127. data/sub/avm-eac_rails_base1/spec/spec_helper.rb +4 -0
  128. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/systemd_unit/tasks_scheduler.service +12 -0
  129. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/systemd_unit/tasks_scheduler_command.sh +6 -0
  130. data/sub/avm-eac_redmine_base0/Gemfile +5 -0
  131. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +23 -0
  132. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/apache_host.rb +10 -0
  133. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/core_update.rb +118 -0
  134. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/data_unit.rb +51 -0
  135. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/deploy.rb +36 -0
  136. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instance.rb +57 -0
  137. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +97 -0
  138. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/rest_api.rb +11 -0
  139. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +28 -0
  140. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +66 -0
  141. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners.rb +13 -0
  142. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +7 -0
  143. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +9 -0
  144. data/sub/avm-eac_redmine_base0/locale/en.yml +5 -0
  145. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +5 -0
  146. data/sub/avm-eac_redmine_base0/spec/rubocop_spec.rb +3 -0
  147. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +4 -0
  148. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/deploy/config/install.sh.template +27 -0
  149. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/deploy/config/secrets.yml +8 -0
  150. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +37 -0
  151. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile_apache_setup +8 -0
  152. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +10 -0
  153. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +16 -0
  154. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/install_settings.sh.template +33 -0
  155. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +52 -0
  156. data/sub/avm-eac_redmine_plugin_base0/Gemfile +8 -0
  157. data/sub/avm-eac_redmine_plugin_base0/avm-eac_redmine_plugin_base0.gemspec +19 -0
  158. data/sub/avm-eac_redmine_plugin_base0/lib/avm/eac_redmine_plugin_base0/sources/base.rb +30 -0
  159. data/sub/avm-eac_redmine_plugin_base0/lib/avm/eac_redmine_plugin_base0/version.rb +7 -0
  160. data/sub/avm-eac_redmine_plugin_base0/lib/avm/eac_redmine_plugin_base0.rb +9 -0
  161. data/sub/avm-eac_redmine_plugin_base0/spec/rubocop_spec.rb +3 -0
  162. data/sub/avm-eac_redmine_plugin_base0/spec/spec_helper.rb +4 -0
  163. data/sub/avm-eac_ruby_base1/Gemfile +8 -0
  164. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +21 -0
  165. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/add_or_replace_gem_line.rb +56 -0
  166. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile/dependency.rb +19 -0
  167. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/gemfile.rb +34 -0
  168. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/depends_on.rb +25 -0
  169. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/gem_conflict.rb +44 -0
  170. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/in_gemfile.rb +17 -0
  171. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_buffer.rb +73 -0
  172. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_factory.rb +31 -0
  173. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/line_parser_base.rb +19 -0
  174. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser/version_requirement.rb +26 -0
  175. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler/incompatible_parser.rb +25 -0
  176. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/bundler.rb +11 -0
  177. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/configured.rb +31 -0
  178. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/envvar.rb +17 -0
  179. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop/gemfile.rb +41 -0
  180. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubocop.rb +55 -0
  181. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/version_file.rb +43 -0
  182. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems.rb +11 -0
  183. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundle_command.rb +39 -0
  184. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb +53 -0
  185. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rake.rb +28 -0
  186. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/rubygems.rb +43 -0
  187. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/version_bump.rb +23 -0
  188. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base.rb +62 -0
  189. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler/incompatible.rb +76 -0
  190. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/bundler.rb +19 -0
  191. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners.rb +13 -0
  192. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tester.rb +36 -0
  193. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/base.rb +59 -0
  194. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/minitest.rb +29 -0
  195. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/decorated_gem.rb +52 -0
  196. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple/result.rb +29 -0
  197. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/multiple.rb +90 -0
  198. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests/rspec.rb +25 -0
  199. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/tests.rb +13 -0
  200. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update/sub_update.rb +59 -0
  201. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update.rb +48 -0
  202. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources.rb +11 -0
  203. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +7 -0
  204. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1.rb +9 -0
  205. data/sub/avm-eac_ruby_base1/locale/en.yml +8 -0
  206. data/sub/avm-eac_ruby_base1/locale/pt-BR.yml +8 -0
  207. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec.rb +7 -0
  208. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.source.out +192 -0
  209. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/1.target.yaml +300 -0
  210. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.source.out +245 -0
  211. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/bundler/incompatible_parser_spec_files/2.target.yaml +355 -0
  212. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec.rb +14 -0
  213. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/rubygems/version_file_spec_files/a_version_file.rb +7 -0
  214. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec.rb +20 -0
  215. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Gemfile +5 -0
  216. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/Rakefile +14 -0
  217. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/exe/myrunner +5 -0
  218. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem/version.rb +5 -0
  219. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/lib/mygem.rb +5 -0
  220. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base/bundler_spec_files/mygem/mygem.gemspec +16 -0
  221. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/sources/base_spec.rb +7 -0
  222. data/sub/avm-eac_ruby_base1/spec/rubocop_spec.rb +3 -0
  223. data/sub/avm-eac_ruby_base1/spec/spec_helper.rb +4 -0
  224. data/sub/avm-tools/Gemfile +12 -0
  225. data/sub/avm-tools/Gemfile.lock +300 -0
  226. data/sub/avm-tools/README.textile +39 -0
  227. data/sub/avm-tools/avm-tools.gemspec +33 -0
  228. data/sub/avm-tools/exe/avm +6 -0
  229. data/sub/avm-tools/lib/avm/eac_wordpress_base0/apache_host.rb +25 -0
  230. data/sub/avm-tools/lib/avm/eac_wordpress_base0/deploy.rb +10 -0
  231. data/sub/avm-tools/lib/avm/eac_wordpress_base0/instance.rb +24 -0
  232. data/sub/avm-tools/lib/avm/eac_wordpress_base0.rb +9 -0
  233. data/sub/avm-tools/lib/avm/eac_writings_base0/apache_host.rb +17 -0
  234. data/sub/avm-tools/lib/avm/eac_writings_base0/commons.rb +12 -0
  235. data/sub/avm-tools/lib/avm/eac_writings_base0/deploy.rb +36 -0
  236. data/sub/avm-tools/lib/avm/eac_writings_base0/file_build/base_stereotype.rb +19 -0
  237. data/sub/avm-tools/lib/avm/eac_writings_base0/file_build/chapter_index.rb +23 -0
  238. data/sub/avm-tools/lib/avm/eac_writings_base0/file_build/tex_source.rb +33 -0
  239. data/sub/avm-tools/lib/avm/eac_writings_base0/file_build.rb +45 -0
  240. data/sub/avm-tools/lib/avm/eac_writings_base0/instance.rb +11 -0
  241. data/sub/avm-tools/lib/avm/eac_writings_base0/project.rb +33 -0
  242. data/sub/avm-tools/lib/avm/eac_writings_base0/project_build/chapters_content.rb +47 -0
  243. data/sub/avm-tools/lib/avm/eac_writings_base0/project_build/copy_files.rb +42 -0
  244. data/sub/avm-tools/lib/avm/eac_writings_base0/project_build.rb +117 -0
  245. data/sub/avm-tools/lib/avm/eac_writings_base0.rb +9 -0
  246. data/sub/avm-tools/lib/avm/launcher/context/instance_collector.rb +46 -0
  247. data/sub/avm-tools/lib/avm/launcher/context/instance_discovery.rb +56 -0
  248. data/sub/avm-tools/lib/avm/launcher/context/instance_manager/cached_instance.rb +37 -0
  249. data/sub/avm-tools/lib/avm/launcher/context/instance_manager/cached_instances.rb +35 -0
  250. data/sub/avm-tools/lib/avm/launcher/context/instance_manager.rb +76 -0
  251. data/sub/avm-tools/lib/avm/launcher/context/settings.rb +53 -0
  252. data/sub/avm-tools/lib/avm/launcher/context.rb +94 -0
  253. data/sub/avm-tools/lib/avm/launcher/git/base/class_methods.rb +28 -0
  254. data/sub/avm-tools/lib/avm/launcher/git/base/dirty_files.rb +23 -0
  255. data/sub/avm-tools/lib/avm/launcher/git/base/remotes.rb +40 -0
  256. data/sub/avm-tools/lib/avm/launcher/git/base/subrepo.rb +44 -0
  257. data/sub/avm-tools/lib/avm/launcher/git/base/underlying.rb +63 -0
  258. data/sub/avm-tools/lib/avm/launcher/git/base.rb +86 -0
  259. data/sub/avm-tools/lib/avm/launcher/git/error.rb +13 -0
  260. data/sub/avm-tools/lib/avm/launcher/git/mirror_update.rb +38 -0
  261. data/sub/avm-tools/lib/avm/launcher/git/publish_base.rb +125 -0
  262. data/sub/avm-tools/lib/avm/launcher/git/remote.rb +55 -0
  263. data/sub/avm-tools/lib/avm/launcher/git/sub_warp_base.rb +33 -0
  264. data/sub/avm-tools/lib/avm/launcher/git/warp_base.rb +67 -0
  265. data/sub/avm-tools/lib/avm/launcher/git.rb +7 -0
  266. data/sub/avm-tools/lib/avm/launcher/instances/base/cache.rb +43 -0
  267. data/sub/avm-tools/lib/avm/launcher/instances/base.rb +96 -0
  268. data/sub/avm-tools/lib/avm/launcher/instances/error.rb +10 -0
  269. data/sub/avm-tools/lib/avm/launcher/instances/runner_helper.rb +47 -0
  270. data/sub/avm-tools/lib/avm/launcher/instances/settings.rb +55 -0
  271. data/sub/avm-tools/lib/avm/launcher/instances.rb +6 -0
  272. data/sub/avm-tools/lib/avm/launcher/paths/logical.rb +87 -0
  273. data/sub/avm-tools/lib/avm/launcher/paths.rb +4 -0
  274. data/sub/avm-tools/lib/avm/launcher/project.rb +18 -0
  275. data/sub/avm-tools/lib/avm/launcher/publish/base.rb +47 -0
  276. data/sub/avm-tools/lib/avm/launcher/publish.rb +4 -0
  277. data/sub/avm-tools/lib/avm/launcher/ruby/gem/build.rb +125 -0
  278. data/sub/avm-tools/lib/avm/launcher/ruby/gem/specification.rb +63 -0
  279. data/sub/avm-tools/lib/avm/launcher/ruby/gem.rb +4 -0
  280. data/sub/avm-tools/lib/avm/launcher/ruby.rb +3 -0
  281. data/sub/avm-tools/lib/avm/launcher/vendor/github.rb +20 -0
  282. data/sub/avm-tools/lib/avm/launcher/vendor.rb +3 -0
  283. data/sub/avm-tools/lib/avm/patches/i18n.rb +22 -0
  284. data/sub/avm-tools/lib/avm/patches.rb +9 -0
  285. data/sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb +32 -0
  286. data/sub/avm-tools/lib/avm/projects/stereotype.rb +63 -0
  287. data/sub/avm-tools/lib/avm/projects/stereotypes/git/local_project_mixin.rb +19 -0
  288. data/sub/avm-tools/lib/avm/projects/stereotypes/git/publish.rb +15 -0
  289. data/sub/avm-tools/lib/avm/projects/stereotypes/git/warp.rb +27 -0
  290. data/sub/avm-tools/lib/avm/projects/stereotypes/git.rb +25 -0
  291. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subrepo/publish.rb +14 -0
  292. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subrepo/warp.rb +88 -0
  293. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subrepo.rb +34 -0
  294. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subtree/publish.rb +14 -0
  295. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subtree/warp.rb +32 -0
  296. data/sub/avm-tools/lib/avm/projects/stereotypes/git_subtree.rb +51 -0
  297. data/sub/avm-tools/lib/avm/projects/stereotypes/rails_application/local_project_mixin.rb +18 -0
  298. data/sub/avm-tools/lib/avm/projects/stereotypes/rails_application.rb +25 -0
  299. data/sub/avm-tools/lib/avm/projects/stereotypes/redmine_plugin.rb +23 -0
  300. data/sub/avm-tools/lib/avm/projects/stereotypes/ruby_gem/local_project_mixin.rb +28 -0
  301. data/sub/avm-tools/lib/avm/projects/stereotypes/ruby_gem/publish.rb +129 -0
  302. data/sub/avm-tools/lib/avm/projects/stereotypes/ruby_gem.rb +30 -0
  303. data/sub/avm-tools/lib/avm/projects/stereotypes.rb +20 -0
  304. data/sub/avm-tools/lib/avm/projects.rb +9 -0
  305. data/sub/avm-tools/lib/avm/rails.rb +9 -0
  306. data/sub/avm-tools/lib/avm/ruby/bundler.rb +11 -0
  307. data/sub/avm-tools/lib/avm/ruby/gems/generator.rb +165 -0
  308. data/sub/avm-tools/lib/avm/ruby/gems.rb +11 -0
  309. data/sub/avm-tools/lib/avm/ruby.rb +9 -0
  310. data/sub/avm-tools/lib/avm/stereotypes.rb +9 -0
  311. data/sub/avm-tools/lib/avm/tools/app_src.rb +64 -0
  312. data/sub/avm-tools/lib/avm/tools/core_ext.rb +4 -0
  313. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_asciidoctor_base0/build.rb +56 -0
  314. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_asciidoctor_base0.rb +14 -0
  315. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_writings_base0/build_chapters.rb +45 -0
  316. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_writings_base0/build_single.rb +35 -0
  317. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_writings_base0/info.rb +34 -0
  318. data/sub/avm-tools/lib/avm/tools/runner/app_src/eac_writings_base0.rb +33 -0
  319. data/sub/avm-tools/lib/avm/tools/runner/app_src/info.rb +38 -0
  320. data/sub/avm-tools/lib/avm/tools/runner/app_src/issue/complete.rb +80 -0
  321. data/sub/avm-tools/lib/avm/tools/runner/app_src/issue/deliver.rb +35 -0
  322. data/sub/avm-tools/lib/avm/tools/runner/app_src/issue.rb +19 -0
  323. data/sub/avm-tools/lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock/git.rb +62 -0
  324. data/sub/avm-tools/lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock.rb +105 -0
  325. data/sub/avm-tools/lib/avm/tools/runner/app_src/ruby/bundler.rb +21 -0
  326. data/sub/avm-tools/lib/avm/tools/runner/app_src/ruby.rb +19 -0
  327. data/sub/avm-tools/lib/avm/tools/runner/app_src/subs.rb +71 -0
  328. data/sub/avm-tools/lib/avm/tools/runner/app_src/test.rb +93 -0
  329. data/sub/avm-tools/lib/avm/tools/runner/app_src/update.rb +22 -0
  330. data/sub/avm-tools/lib/avm/tools/runner/app_src/version_bump.rb +81 -0
  331. data/sub/avm-tools/lib/avm/tools/runner/app_src.rb +40 -0
  332. data/sub/avm-tools/lib/avm/tools/runner/config/load_path.rb +52 -0
  333. data/sub/avm-tools/lib/avm/tools/runner/config.rb +17 -0
  334. data/sub/avm-tools/lib/avm/tools/runner/eac_asciidoctor_base0.rb +14 -0
  335. data/sub/avm-tools/lib/avm/tools/runner/eac_redmine_base0/dev_docker.rb +17 -0
  336. data/sub/avm-tools/lib/avm/tools/runner/eac_redmine_base0/docker.rb +17 -0
  337. data/sub/avm-tools/lib/avm/tools/runner/eac_redmine_base0/project_rename.rb +56 -0
  338. data/sub/avm-tools/lib/avm/tools/runner/eac_redmine_base0.rb +15 -0
  339. data/sub/avm-tools/lib/avm/tools/runner/eac_webapp_base0.rb +14 -0
  340. data/sub/avm-tools/lib/avm/tools/runner/eac_wordpress_base0.rb +15 -0
  341. data/sub/avm-tools/lib/avm/tools/runner/eac_writings_base0.rb +14 -0
  342. data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +50 -0
  343. data/sub/avm-tools/lib/avm/tools/runner/files/rotate.rb +31 -0
  344. data/sub/avm-tools/lib/avm/tools/runner/files.rb +17 -0
  345. data/sub/avm-tools/lib/avm/tools/runner/git/auto_commit.rb +67 -0
  346. data/sub/avm-tools/lib/avm/tools/runner/git/commit.rb +102 -0
  347. data/sub/avm-tools/lib/avm/tools/runner/git/deploy.rb +112 -0
  348. data/sub/avm-tools/lib/avm/tools/runner/git/dirty_files.rb +44 -0
  349. data/sub/avm-tools/lib/avm/tools/runner/git/organize.rb +75 -0
  350. data/sub/avm-tools/lib/avm/tools/runner/git/revisions_test.rb +66 -0
  351. data/sub/avm-tools/lib/avm/tools/runner/git/subrepo/check.rb +48 -0
  352. data/sub/avm-tools/lib/avm/tools/runner/git/subrepo/clone.rb +83 -0
  353. data/sub/avm-tools/lib/avm/tools/runner/git/subrepo/fix.rb +68 -0
  354. data/sub/avm-tools/lib/avm/tools/runner/git/subrepo.rb +19 -0
  355. data/sub/avm-tools/lib/avm/tools/runner/git.rb +36 -0
  356. data/sub/avm-tools/lib/avm/tools/runner/instance/info.rb +41 -0
  357. data/sub/avm-tools/lib/avm/tools/runner/instance.rb +25 -0
  358. data/sub/avm-tools/lib/avm/tools/runner/launcher/instances.rb +36 -0
  359. data/sub/avm-tools/lib/avm/tools/runner/launcher/projects.rb +40 -0
  360. data/sub/avm-tools/lib/avm/tools/runner/launcher/publish.rb +53 -0
  361. data/sub/avm-tools/lib/avm/tools/runner/launcher.rb +17 -0
  362. data/sub/avm-tools/lib/avm/tools/runner/ruby/gems/generate.rb +39 -0
  363. data/sub/avm-tools/lib/avm/tools/runner/ruby/gems.rb +19 -0
  364. data/sub/avm-tools/lib/avm/tools/runner/ruby/rubocop.rb +30 -0
  365. data/sub/avm-tools/lib/avm/tools/runner/ruby.rb +17 -0
  366. data/sub/avm-tools/lib/avm/tools/runner/self/docker.rb +14 -0
  367. data/sub/avm-tools/lib/avm/tools/runner/self/registry.rb +25 -0
  368. data/sub/avm-tools/lib/avm/tools/runner/self.rb +22 -0
  369. data/sub/avm-tools/lib/avm/tools/runner.rb +27 -0
  370. data/sub/avm-tools/lib/avm/tools/self.rb +23 -0
  371. data/sub/avm-tools/lib/avm/tools/version.rb +7 -0
  372. data/sub/avm-tools/lib/avm/tools.rb +8 -0
  373. data/sub/avm-tools/lib/avm.rb +7 -0
  374. data/sub/avm-tools/locale/en.yml +7 -0
  375. data/sub/avm-tools/locale/pt-BR.yml +7 -0
  376. data/sub/avm-tools/spec/dummy/avm-tools_stub/avm-tools.gemspec +28 -0
  377. data/sub/avm-tools/spec/dummy/avm-tools_stub/lib/avm/tools/version.rb +7 -0
  378. data/sub/avm-tools/spec/dummy/avm-tools_stub/lib/avm/tools.rb +6 -0
  379. data/sub/avm-tools/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub/version.rb +5 -0
  380. data/sub/avm-tools/spec/dummy/ruby_gem_stub/lib/ruby_gem_stub.rb +3 -0
  381. data/sub/avm-tools/spec/dummy/ruby_gem_stub/ruby_gem_stub.gemspec +15 -0
  382. data/sub/avm-tools/spec/lib/avm/eac_wordpress_base0/apache_host_spec.rb +24 -0
  383. data/sub/avm-tools/spec/lib/avm/eac_wordpress_base0/apache_host_spec_no_ssl_content.conf +11 -0
  384. data/sub/avm-tools/spec/lib/avm/instances/application_spec.rb +23 -0
  385. data/sub/avm-tools/spec/lib/avm/instances/application_spec_fixture.yml +3 -0
  386. data/sub/avm-tools/spec/lib/avm/instances/base_spec.rb +92 -0
  387. data/sub/avm-tools/spec/lib/avm/instances/base_spec_configs_storage.yml +34 -0
  388. data/sub/avm-tools/spec/lib/avm/launcher/context_spec.rb +110 -0
  389. data/sub/avm-tools/spec/lib/avm/launcher/context_spec.yml +5 -0
  390. data/sub/avm-tools/spec/lib/avm/launcher/git/base_spec.rb +45 -0
  391. data/sub/avm-tools/spec/lib/avm/launcher/instances/base_spec.rb +25 -0
  392. data/sub/avm-tools/spec/lib/avm/launcher/ruby/gem/build_spec.rb +43 -0
  393. data/sub/avm-tools/spec/lib/avm/launcher/ruby/gem/specification_spec.rb +40 -0
  394. data/sub/avm-tools/spec/lib/avm/launcher/vendor/github_spec.rb +23 -0
  395. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/publish_spec.rb +80 -0
  396. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/publish_spec_settings.yml +6 -0
  397. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/warp_spec.rb +49 -0
  398. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/git_subrepo/warp_spec_settings.yml +6 -0
  399. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/ruby_gem/publish_spec.rb +19 -0
  400. data/sub/avm-tools/spec/lib/avm/projects/stereotypes/ruby_gem_spec.rb +22 -0
  401. data/sub/avm-tools/spec/lib/avm/tools/runner/app_src/issue/complete_spec.rb +48 -0
  402. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec.rb +56 -0
  403. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/Gemfile.source +6 -0
  404. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/Gemfile.target +5 -0
  405. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/html_code.html.erb.source +8 -0
  406. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/html_code.html.erb.target +8 -0
  407. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/html_code.html.source +5 -0
  408. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/html_code.html.target +5 -0
  409. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/javascript_code1.js.source +29 -0
  410. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/javascript_code1.js.target +21 -0
  411. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/json_code.json.source +8 -0
  412. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/json_code.json.target +7 -0
  413. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_code.php.source +10 -0
  414. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_code.php.target +10 -0
  415. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_code2.php.source +4 -0
  416. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_code2.php.target +3 -0
  417. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_html_code.php.source +64 -0
  418. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_html_code.php.target +64 -0
  419. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_iso88591_code.php.source +4 -0
  420. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/php_iso88591_code.php.target +3 -0
  421. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/plain_text.source +3 -0
  422. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/plain_text.target +3 -0
  423. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/python_code.source +30 -0
  424. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/python_code.target +39 -0
  425. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/ruby_code.rb.source +6 -0
  426. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/ruby_code.rb.target +7 -0
  427. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/xml_code.xml.source +11 -0
  428. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec_files/xml_code.xml.target +9 -0
  429. data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +72 -0
  430. data/sub/avm-tools/spec/lib/avm/tools/runner/git/deploy_spec.rb +124 -0
  431. data/sub/avm-tools/spec/lib/avm/tools/runner/git/deploy_spec_files/append1/stub3.txt.template +1 -0
  432. data/sub/avm-tools/spec/lib/avm/tools/runner/git/deploy_spec_files/append2/stub4.txt +1 -0
  433. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec.rb +53 -0
  434. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/Gemfile +5 -0
  435. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/Gemfile.lock +1 -0
  436. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/dashed-mygem.gemspec +18 -0
  437. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/lib/dashed/mygem/version.rb +7 -0
  438. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/lib/dashed/mygem.rb +9 -0
  439. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/spec/rubocop_spec.rb +3 -0
  440. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/dashed-mygem/spec/spec_helper.rb +4 -0
  441. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/Gemfile +5 -0
  442. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/Gemfile.lock +1 -0
  443. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/lib/mygem/version.rb +5 -0
  444. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/lib/mygem.rb +7 -0
  445. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/mygem.gemspec +18 -0
  446. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/spec/rubocop_spec.rb +3 -0
  447. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/gems/generate_spec_files/mygem/spec/spec_helper.rb +4 -0
  448. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/rubocop_spec.rb +35 -0
  449. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/rubocop_spec_files/dir1/dir3/Gemfile +5 -0
  450. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/rubocop_spec_files/dir1/dir3/Gemfile.lock +27 -0
  451. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/rubocop_spec_files/dir2/empty.rb +1 -0
  452. data/sub/avm-tools/spec/lib/avm/tools/runner/ruby/rubocop_spec_files/dir4/false_command.rb +4 -0
  453. data/sub/avm-tools/spec/lib/avm/tools/runner_spec.rb +15 -0
  454. data/sub/avm-tools/spec/rubocop_spec.rb +3 -0
  455. data/sub/avm-tools/spec/spec_helper/avm_tools_runner.rb +11 -0
  456. data/sub/avm-tools/spec/spec_helper/eac_launcher/settings.yml +6 -0
  457. data/sub/avm-tools/spec/spec_helper/eac_launcher.rb +52 -0
  458. data/sub/avm-tools/spec/spec_helper/stub_templates/stubbed_docker_server/Dockerfile +24 -0
  459. data/sub/avm-tools/spec/spec_helper/stub_templates/stubbed_docker_server/id_rsa +27 -0
  460. data/sub/avm-tools/spec/spec_helper/stub_templates/stubbed_docker_server/id_rsa.pub +1 -0
  461. data/sub/avm-tools/spec/spec_helper/stubbed_docker_server.rb +93 -0
  462. data/sub/avm-tools/spec/spec_helper/templates.rb +5 -0
  463. data/sub/avm-tools/spec/spec_helper.rb +7 -0
  464. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/Gemfile +5 -0
  465. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +22 -0
  466. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/apache_host.rb +17 -0
  467. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/apache_path.rb +10 -0
  468. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/deploy.rb +26 -0
  469. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instance.rb +11 -0
  470. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +16 -0
  471. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build/file.rb +30 -0
  472. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb +49 -0
  473. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runner/build.rb +54 -0
  474. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runner.rb +30 -0
  475. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources.rb +11 -0
  476. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/version.rb +7 -0
  477. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb +9 -0
  478. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +7 -0
  479. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/spec/rubocop_spec.rb +3 -0
  480. data/sub/avm-tools/sub/avm-eac_asciidoctor_base0/spec/spec_helper.rb +4 -0
  481. data/sub/avm-tools/sub/avm-eac_postgresql_base0/Gemfile +5 -0
  482. data/sub/avm-tools/sub/avm-eac_postgresql_base0/avm-eac_postgresql_base0.gemspec +19 -0
  483. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/assert.rb +77 -0
  484. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance/data_unit.rb +39 -0
  485. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance.rb +74 -0
  486. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/instance_with.rb +18 -0
  487. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0/version.rb +7 -0
  488. data/sub/avm-tools/sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0.rb +9 -0
  489. data/sub/avm-tools/sub/avm-eac_postgresql_base0/spec/rubocop_spec.rb +3 -0
  490. data/sub/avm-tools/sub/avm-eac_postgresql_base0/spec/spec_helper.rb +4 -0
  491. data/sub/avm-tools/sub/avm-eac_rails_base0/Gemfile +5 -0
  492. data/sub/avm-tools/sub/avm-eac_rails_base0/avm-eac_rails_base0.gemspec +19 -0
  493. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/apache_host.rb +10 -0
  494. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/apache_path.rb +19 -0
  495. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/deploy.rb +53 -0
  496. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/instance.rb +11 -0
  497. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners/base.rb +26 -0
  498. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/runners.rb +11 -0
  499. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/sources/base.rb +27 -0
  500. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0/version.rb +7 -0
  501. data/sub/avm-tools/sub/avm-eac_rails_base0/lib/avm/eac_rails_base0.rb +9 -0
  502. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec.rb +22 -0
  503. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +11 -0
  504. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_path_spec.rb +23 -0
  505. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/lib/avm/eac_rails_base0/apache_path_spec_files/stub-app_0_apache_path.conf +14 -0
  506. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/rubocop_spec.rb +3 -0
  507. data/sub/avm-tools/sub/avm-eac_rails_base0/spec/spec_helper.rb +5 -0
  508. data/sub/avm-tools/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/apache_path/extra_content.conf +5 -0
  509. data/sub/avm-tools/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/deploy/config/database.yml.template +21 -0
  510. data/sub/avm-tools/sub/avm-eac_rails_base0/template/avm/eac_rails_base0/deploy/config/envvars.d/email.yml.template +11 -0
  511. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/Gemfile +5 -0
  512. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +20 -0
  513. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache/resource.rb +59 -0
  514. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/apache.rb +26 -0
  515. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/docker_image.rb +29 -0
  516. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/instances/base.rb +22 -0
  517. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/instances.rb +11 -0
  518. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base/docker.rb +19 -0
  519. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/runners/base.rb +28 -0
  520. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/version.rb +7 -0
  521. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0.rb +9 -0
  522. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/docker_image_spec.rb +16 -0
  523. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base/docker_spec.rb +14 -0
  524. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/spec/lib/avm/eac_ubuntu_base0/runners/base_spec.rb +7 -0
  525. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/spec/rubocop_spec.rb +3 -0
  526. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/spec/spec_helper.rb +4 -0
  527. data/sub/avm-tools/sub/avm-eac_ubuntu_base0/template/avm/eac_ubuntu_base0/docker_image/Dockerfile.template +24 -0
  528. data/sub/avm-tools/sub/avm-files/Gemfile +5 -0
  529. data/sub/avm-tools/sub/avm-files/avm-files.gemspec +21 -0
  530. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable/file_content.rb +24 -0
  531. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable/plain_directory.rb +25 -0
  532. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable/resource_base.rb +13 -0
  533. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable/tar_output_command.rb +26 -0
  534. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable/templatized_directory.rb +29 -0
  535. data/sub/avm-tools/sub/avm-files/lib/avm/files/appendable.rb +55 -0
  536. data/sub/avm-tools/sub/avm-files/lib/avm/files/appender.rb +11 -0
  537. data/sub/avm-tools/sub/avm-files/lib/avm/files/deploy.rb +71 -0
  538. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/base.rb +62 -0
  539. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/generic_plain.rb +34 -0
  540. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/html.rb +45 -0
  541. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/javascript.rb +24 -0
  542. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/json.rb +27 -0
  543. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/php.rb +22 -0
  544. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/python.rb +22 -0
  545. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/ruby.rb +22 -0
  546. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats/xml.rb +28 -0
  547. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/formats.rb +13 -0
  548. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter/utf8_assert.rb +74 -0
  549. data/sub/avm-tools/sub/avm-files/lib/avm/files/formatter.rb +90 -0
  550. data/sub/avm-tools/sub/avm-files/lib/avm/files/version.rb +7 -0
  551. data/sub/avm-tools/sub/avm-files/lib/avm/files.rb +9 -0
  552. data/sub/avm-tools/sub/avm-files/spec/rubocop_spec.rb +3 -0
  553. data/sub/avm-tools/sub/avm-files/spec/spec_helper.rb +4 -0
  554. data/sub/avm-tools/sub/avm-git/Gemfile +5 -0
  555. data/sub/avm-tools/sub/avm-git/avm-git.gemspec +21 -0
  556. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/commit_info.rb +23 -0
  557. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/base.rb +39 -0
  558. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/last.rb +19 -0
  559. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/manual.rb +45 -0
  560. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/new.rb +24 -0
  561. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/nth.rb +31 -0
  562. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules/unique.rb +21 -0
  563. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit/rules.rb +31 -0
  564. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit_path/ruby.rb +20 -0
  565. data/sub/avm-tools/sub/avm-git/lib/avm/git/auto_commit_path.rb +28 -0
  566. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit/class_methods.rb +31 -0
  567. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit/deploy.rb +38 -0
  568. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit/deploy_methods.rb +19 -0
  569. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  570. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit/file.rb +46 -0
  571. data/sub/avm-tools/sub/avm-git/lib/avm/git/commit.rb +59 -0
  572. data/sub/avm-tools/sub/avm-git/lib/avm/git/file_auto_fixup.rb +83 -0
  573. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/commits.rb +42 -0
  574. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +23 -0
  575. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +61 -0
  576. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +39 -0
  577. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  578. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  579. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/test.rb +40 -0
  580. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +28 -0
  581. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/validation.rb +39 -0
  582. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/validations.rb +53 -0
  583. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  584. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  585. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue/deliver.rb +56 -0
  586. data/sub/avm-tools/sub/avm-git/lib/avm/git/issue.rb +11 -0
  587. data/sub/avm-tools/sub/avm-git/lib/avm/git/organize/reference_update.rb +34 -0
  588. data/sub/avm-tools/sub/avm-git/lib/avm/git/organize/repository.rb +76 -0
  589. data/sub/avm-tools/sub/avm-git/lib/avm/git/organize.rb +11 -0
  590. data/sub/avm-tools/sub/avm-git/lib/avm/git/revision_test.rb +105 -0
  591. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +35 -0
  592. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms/git/commit.rb +55 -0
  593. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms/git.rb +73 -0
  594. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +39 -0
  595. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms/provider.rb +19 -0
  596. data/sub/avm-tools/sub/avm-git/lib/avm/git/scms.rb +11 -0
  597. data/sub/avm-tools/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +51 -0
  598. data/sub/avm-tools/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +89 -0
  599. data/sub/avm-tools/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +32 -0
  600. data/sub/avm-tools/sub/avm-git/lib/avm/git/subrepo_check.rb +38 -0
  601. data/sub/avm-tools/sub/avm-git/lib/avm/git/subrepo_checks.rb +59 -0
  602. data/sub/avm-tools/sub/avm-git/lib/avm/git/version.rb +7 -0
  603. data/sub/avm-tools/sub/avm-git/lib/avm/git.rb +11 -0
  604. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/auto_commit_path_spec.rb +21 -0
  605. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/deploy_spec.rb +93 -0
  606. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  607. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  608. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  609. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  610. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  611. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  612. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  613. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  614. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  615. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  616. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  617. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  618. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  619. data/sub/avm-tools/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  620. data/sub/avm-tools/sub/avm-git/spec/rubocop_spec.rb +3 -0
  621. data/sub/avm-tools/sub/avm-git/spec/spec_helper.rb +4 -0
  622. data/sub/avm-tools/sub/eac_config/Gemfile +5 -0
  623. data/sub/avm-tools/sub/eac_config/eac_config.gemspec +19 -0
  624. data/sub/avm-tools/sub/eac_config/lib/eac_config/entry.rb +53 -0
  625. data/sub/avm-tools/sub/eac_config/lib/eac_config/entry_path.rb +41 -0
  626. data/sub/avm-tools/sub/eac_config/lib/eac_config/envvars_node/entry.rb +54 -0
  627. data/sub/avm-tools/sub/eac_config/lib/eac_config/envvars_node.rb +25 -0
  628. data/sub/avm-tools/sub/eac_config/lib/eac_config/load_nodes_search.rb +39 -0
  629. data/sub/avm-tools/sub/eac_config/lib/eac_config/load_path.rb +28 -0
  630. data/sub/avm-tools/sub/eac_config/lib/eac_config/node.rb +67 -0
  631. data/sub/avm-tools/sub/eac_config/lib/eac_config/node_entry.rb +22 -0
  632. data/sub/avm-tools/sub/eac_config/lib/eac_config/node_uri.rb +38 -0
  633. data/sub/avm-tools/sub/eac_config/lib/eac_config/old_configs/base.rb +43 -0
  634. data/sub/avm-tools/sub/eac_config/lib/eac_config/old_configs/file.rb +47 -0
  635. data/sub/avm-tools/sub/eac_config/lib/eac_config/old_configs.rb +75 -0
  636. data/sub/avm-tools/sub/eac_config/lib/eac_config/paths_hash/entry_key_error.rb +8 -0
  637. data/sub/avm-tools/sub/eac_config/lib/eac_config/paths_hash/node.rb +67 -0
  638. data/sub/avm-tools/sub/eac_config/lib/eac_config/paths_hash/path_search.rb +39 -0
  639. data/sub/avm-tools/sub/eac_config/lib/eac_config/paths_hash.rb +63 -0
  640. data/sub/avm-tools/sub/eac_config/lib/eac_config/rspec/setup.rb +65 -0
  641. data/sub/avm-tools/sub/eac_config/lib/eac_config/rspec.rb +9 -0
  642. data/sub/avm-tools/sub/eac_config/lib/eac_config/version.rb +5 -0
  643. data/sub/avm-tools/sub/eac_config/lib/eac_config/yaml_file_node/entry.rb +36 -0
  644. data/sub/avm-tools/sub/eac_config/lib/eac_config/yaml_file_node.rb +47 -0
  645. data/sub/avm-tools/sub/eac_config/lib/eac_config.rb +7 -0
  646. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/entry_path_spec.rb +30 -0
  647. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb +14 -0
  648. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/envvars_node_spec.rb +40 -0
  649. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/old_configs_spec.rb +46 -0
  650. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/paths_hash_spec.rb +88 -0
  651. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +52 -0
  652. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +6 -0
  653. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +2 -0
  654. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +2 -0
  655. data/sub/avm-tools/sub/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +4 -0
  656. data/sub/avm-tools/sub/eac_config/spec/rubocop_spec.rb +3 -0
  657. data/sub/avm-tools/sub/eac_config/spec/spec_helper.rb +4 -0
  658. data/sub/avm-tools/sub/eac_docker/Gemfile +5 -0
  659. data/sub/avm-tools/sub/eac_docker/eac_docker.gemspec +19 -0
  660. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/container.rb +78 -0
  661. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/debug.rb +15 -0
  662. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/executables.rb +18 -0
  663. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/images/base.rb +14 -0
  664. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/images/coded.rb +43 -0
  665. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/images/named.rb +30 -0
  666. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/images/templatized.rb +41 -0
  667. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/images.rb +9 -0
  668. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/registry.rb +17 -0
  669. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/rspec/setup.rb +17 -0
  670. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/rspec.rb +9 -0
  671. data/sub/avm-tools/sub/eac_docker/lib/eac_docker/version.rb +5 -0
  672. data/sub/avm-tools/sub/eac_docker/lib/eac_docker.rb +7 -0
  673. data/sub/avm-tools/sub/eac_docker/spec/lib/eac_docker/executables_spec.rb +9 -0
  674. data/sub/avm-tools/sub/eac_docker/spec/lib/eac_docker/images/coded_spec.rb +12 -0
  675. data/sub/avm-tools/sub/eac_docker/spec/lib/eac_docker/images/coded_spec_files/image1/Dockerfile +1 -0
  676. data/sub/avm-tools/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec.rb +18 -0
  677. data/sub/avm-tools/sub/eac_docker/spec/lib/eac_docker/images/templatized_spec_files/stub_docker_image/Dockerfile +1 -0
  678. data/sub/avm-tools/sub/eac_docker/spec/rubocop_spec.rb +3 -0
  679. data/sub/avm-tools/sub/eac_docker/spec/spec_helper.rb +4 -0
  680. data/sub/avm-tools/sub/eac_git/Gemfile +5 -0
  681. data/sub/avm-tools/sub/eac_git/eac_git.gemspec +20 -0
  682. data/sub/avm-tools/sub/eac_git/lib/eac_git/executables.rb +48 -0
  683. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/branch.rb +27 -0
  684. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/commit/archive.rb +19 -0
  685. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/commit/changed_file.rb +46 -0
  686. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/commit/diff_tree_line.rb +32 -0
  687. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/commit.rb +73 -0
  688. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/dirty_files.rb +37 -0
  689. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/log.rb +17 -0
  690. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/remote.rb +27 -0
  691. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/remotes.rb +20 -0
  692. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/subrepo/config.rb +43 -0
  693. data/sub/avm-tools/sub/eac_git/lib/eac_git/local/subrepo.rb +49 -0
  694. data/sub/avm-tools/sub/eac_git/lib/eac_git/local.rb +126 -0
  695. data/sub/avm-tools/sub/eac_git/lib/eac_git/remote/ls_result.rb +20 -0
  696. data/sub/avm-tools/sub/eac_git/lib/eac_git/remote.rb +19 -0
  697. data/sub/avm-tools/sub/eac_git/lib/eac_git/rspec/setup.rb +23 -0
  698. data/sub/avm-tools/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb +71 -0
  699. data/sub/avm-tools/sub/eac_git/lib/eac_git/rspec.rb +9 -0
  700. data/sub/avm-tools/sub/eac_git/lib/eac_git/version.rb +5 -0
  701. data/sub/avm-tools/sub/eac_git/lib/eac_git.rb +7 -0
  702. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/executables_spec.rb +13 -0
  703. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec.rb +13 -0
  704. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.source.out +1 -0
  705. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  706. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  707. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  708. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  709. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  710. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  711. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  712. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  713. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  714. data/sub/avm-tools/sub/eac_git/spec/lib/eac_git/local/commit_spec.rb +58 -0
  715. data/sub/avm-tools/sub/eac_git/spec/rubocop_spec.rb +3 -0
  716. data/sub/avm-tools/sub/eac_git/spec/spec_helper.rb +4 -0
  717. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/Changes +110 -0
  718. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/Intro.pod +509 -0
  719. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/License +21 -0
  720. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/Makefile +82 -0
  721. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/Meta +28 -0
  722. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ReadMe.pod +698 -0
  723. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/doc/comparison.swim +35 -0
  724. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
  725. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
  726. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/Changes +15 -0
  727. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/License +21 -0
  728. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
  729. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/Meta +28 -0
  730. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
  731. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
  732. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
  733. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
  734. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
  735. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
  736. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
  737. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
  738. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
  739. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
  740. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
  741. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
  742. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
  743. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
  744. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
  745. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/License +21 -0
  746. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
  747. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
  748. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
  749. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
  750. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
  751. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
  752. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
  753. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
  754. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
  755. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
  756. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
  757. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
  758. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
  759. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
  760. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
  761. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
  762. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
  763. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
  764. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
  765. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
  766. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
  767. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
  768. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
  769. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
  770. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
  771. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
  772. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
  773. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
  774. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
  775. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
  776. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
  777. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
  778. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
  779. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
  780. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
  781. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
  782. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
  783. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
  784. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
  785. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
  786. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
  787. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
  788. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
  789. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
  790. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
  791. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
  792. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
  793. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
  794. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
  795. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
  796. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
  797. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
  798. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
  799. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/lib/git-subrepo +1903 -0
  800. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
  801. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
  802. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
  803. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/0.4.0 +12 -0
  804. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/AllGitCmds +148 -0
  805. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Cases +32 -0
  806. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Commands +33 -0
  807. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Dags +199 -0
  808. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Gists +7 -0
  809. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Links +25 -0
  810. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Plugins +10 -0
  811. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Spec +39 -0
  812. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/Story1 +57 -0
  813. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/ToDo +55 -0
  814. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/design.swim +137 -0
  815. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/design2.swim +85 -0
  816. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/init-test +38 -0
  817. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/pull-dance.txt +18 -0
  818. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
  819. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
  820. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
  821. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/note/test.sh +58 -0
  822. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
  823. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
  824. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/share/completion.bash +42 -0
  825. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/share/enable-completion.sh +50 -0
  826. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/share/git-completion.bash +2738 -0
  827. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
  828. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/branch-all.t +41 -0
  829. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
  830. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/branch-rev-list.t +47 -0
  831. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/branch.t +52 -0
  832. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/clean.t +43 -0
  833. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
  834. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/clone.t +107 -0
  835. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/compile.t +19 -0
  836. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/config.t +58 -0
  837. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/encode.t +91 -0
  838. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/error.t +171 -0
  839. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/fetch.t +43 -0
  840. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/gitignore.t +61 -0
  841. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/init.t +64 -0
  842. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/issue29.t +98 -0
  843. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/issue95.t +98 -0
  844. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/issue96.t +96 -0
  845. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-all.t +38 -0
  846. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-merge.t +113 -0
  847. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-message.t +88 -0
  848. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-new-branch.t +58 -0
  849. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-ours.t +90 -0
  850. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-theirs.t +82 -0
  851. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-twice.t +44 -0
  852. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull-worktree.t +40 -0
  853. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/pull.t +99 -0
  854. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push-after-init.t +51 -0
  855. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push-force.t +56 -0
  856. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push-new-branch.t +61 -0
  857. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push-no-changes.t +29 -0
  858. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push-squash.t +56 -0
  859. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/push.t +176 -0
  860. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/reclone.t +45 -0
  861. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
  862. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/config +4 -0
  863. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  864. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  865. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  866. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  867. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  868. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  869. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
  870. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
  871. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
  872. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/config +4 -0
  873. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  874. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  875. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  876. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
  877. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/HEAD +1 -0
  878. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/config +5 -0
  879. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  880. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  881. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
  882. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  883. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  884. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  885. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  886. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  887. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
  888. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  889. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  890. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
  891. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  892. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  893. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
  894. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
  895. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
  896. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
  897. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  898. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
  899. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/setup +205 -0
  900. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/status.t +68 -0
  901. data/sub/avm-tools/sub/eac_git/vendor/git-subrepo/test/submodule.t +45 -0
  902. data/sub/avm-tools/sub/eac_rest/Gemfile +5 -0
  903. data/sub/avm-tools/sub/eac_rest/eac_rest.gemspec +18 -0
  904. data/sub/avm-tools/sub/eac_rest/lib/eac_rest/api.rb +50 -0
  905. data/sub/avm-tools/sub/eac_rest/lib/eac_rest/entity.rb +16 -0
  906. data/sub/avm-tools/sub/eac_rest/lib/eac_rest/request.rb +95 -0
  907. data/sub/avm-tools/sub/eac_rest/lib/eac_rest/response.rb +112 -0
  908. data/sub/avm-tools/sub/eac_rest/lib/eac_rest/version.rb +5 -0
  909. data/sub/avm-tools/sub/eac_rest/lib/eac_rest.rb +7 -0
  910. data/sub/avm-tools/sub/eac_rest/spec/rubocop_spec.rb +3 -0
  911. data/sub/avm-tools/sub/eac_rest/spec/spec_helper.rb +4 -0
  912. data/sub/avm-tools/sub/eac_templates/Gemfile +5 -0
  913. data/sub/avm-tools/sub/eac_templates/eac_templates.gemspec +19 -0
  914. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/core_ext.rb +4 -0
  915. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/directory.rb +108 -0
  916. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/file.rb +48 -0
  917. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/from_all_gems.rb +4 -0
  918. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/from_gem.rb +35 -0
  919. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +9 -0
  920. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/module/template.rb +10 -0
  921. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/module.rb +4 -0
  922. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +9 -0
  923. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/object/template.rb +9 -0
  924. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches/object.rb +4 -0
  925. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/patches.rb +4 -0
  926. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/searcher.rb +53 -0
  927. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_not_found_error.rb +5 -0
  928. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers/base.rb +21 -0
  929. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers/config_reader.rb +27 -0
  930. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers/entries_reader.rb +23 -0
  931. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers/generic.rb +23 -0
  932. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers/hash.rb +27 -0
  933. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/variable_providers.rb +23 -0
  934. data/sub/avm-tools/sub/eac_templates/lib/eac_templates/version.rb +5 -0
  935. data/sub/avm-tools/sub/eac_templates/lib/eac_templates.rb +7 -0
  936. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/file_spec.rb +35 -0
  937. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/file_spec_files/expected_content +2 -0
  938. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/file_spec_files/source.template +2 -0
  939. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/searcher_spec.rb +30 -0
  940. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file1.template +1 -0
  941. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path1/subdir1/file2 +1 -0
  942. data/sub/avm-tools/sub/eac_templates/spec/lib/eac_templates/searcher_spec_files/path2/subdir1/file3.template +1 -0
  943. data/sub/avm-tools/sub/eac_templates/spec/lib/object/template_spec.rb +23 -0
  944. data/sub/avm-tools/sub/eac_templates/spec/lib/object/template_spec_files/path/my_stub_with_template +1 -0
  945. data/sub/avm-tools/sub/eac_templates/spec/rubocop_spec.rb +3 -0
  946. data/sub/avm-tools/sub/eac_templates/spec/spec_helper.rb +4 -0
  947. data/sub/avm-tools/template/avm/eac_wordpress_base0/deploy/wp-config.php.template +90 -0
  948. data/sub/avm-tools/template/avm/eac_writings_base0/commons/all.tex +5 -0
  949. data/sub/avm-tools/template/avm/eac_writings_base0/commons/ebook.tex +11 -0
  950. data/sub/avm-tools/template/avm/eac_writings_base0/commons/images.tex +11 -0
  951. data/sub/avm-tools/template/avm/eac_writings_base0/commons/links.tex +2 -0
  952. data/sub/avm-tools/template/avm/eac_writings_base0/commons/portuguese.tex +8 -0
  953. data/sub/avm-tools/template/avm/eac_writings_base0/commons/source_code/java.tex +15 -0
  954. data/sub/avm-tools/template/avm/eac_writings_base0/commons/source_code.tex +21 -0
  955. data/sub/avm-tools/template/avm/eac_writings_base0/commons/utils.tex +6 -0
  956. data/sub/avm-tools/template/avm/eac_writings_base0/deploy/index.html.template +9 -0
  957. data/sub/avm-tools/template/avm/ruby/gems/generator/gemspec.template +18 -0
  958. data/sub/avm-tools/template/avm/ruby/gems/generator/root_lib.template +7 -0
  959. data/sub/avm-tools/template/avm/ruby/gems/generator/static/Gemfile +5 -0
  960. data/sub/avm-tools/template/avm/ruby/gems/generator/static/spec/rubocop_spec.rb +3 -0
  961. data/sub/avm-tools/template/avm/ruby/gems/generator/static/spec/spec_helper.rb +4 -0
  962. data/sub/avm-tools/template/avm/ruby/gems/generator/version.template +5 -0
  963. data/sub/avm-tools/template/avm/self/docker_image/Dockerfile +17 -0
  964. data/sub/avm-tools/template/avm/self/docker_image/entrypoint.sh +12 -0
  965. data/sub/eac_cli/Gemfile +5 -0
  966. data/sub/eac_cli/eac_cli.gemspec +20 -0
  967. data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +57 -0
  968. data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +26 -0
  969. data/sub/eac_cli/lib/eac_cli/config/entry.rb +50 -0
  970. data/sub/eac_cli/lib/eac_cli/config.rb +21 -0
  971. data/sub/eac_cli/lib/eac_cli/core_ext.rb +6 -0
  972. data/sub/eac_cli/lib/eac_cli/default_runner.rb +14 -0
  973. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +80 -0
  974. data/sub/eac_cli/lib/eac_cli/definition/argument_option.rb +21 -0
  975. data/sub/eac_cli/lib/eac_cli/definition/base_option/initialize_args_parser.rb +47 -0
  976. data/sub/eac_cli/lib/eac_cli/definition/base_option.rb +66 -0
  977. data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +27 -0
  978. data/sub/eac_cli/lib/eac_cli/definition/positional_argument.rb +61 -0
  979. data/sub/eac_cli/lib/eac_cli/definition.rb +95 -0
  980. data/sub/eac_cli/lib/eac_cli/enum.rb +45 -0
  981. data/sub/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +80 -0
  982. data/sub/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +16 -0
  983. data/sub/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +44 -0
  984. data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +25 -0
  985. data/sub/eac_cli/lib/eac_cli/old_configs.rb +35 -0
  986. data/sub/eac_cli/lib/eac_cli/parser/alternative/argv.rb +17 -0
  987. data/sub/eac_cli/lib/eac_cli/parser/alternative/double_dash.rb +24 -0
  988. data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +37 -0
  989. data/sub/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +29 -0
  990. data/sub/eac_cli/lib/eac_cli/parser/alternative/options.rb +29 -0
  991. data/sub/eac_cli/lib/eac_cli/parser/alternative/positionals.rb +30 -0
  992. data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +47 -0
  993. data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +92 -0
  994. data/sub/eac_cli/lib/eac_cli/parser/collector.rb +46 -0
  995. data/sub/eac_cli/lib/eac_cli/parser/error.rb +15 -0
  996. data/sub/eac_cli/lib/eac_cli/parser.rb +34 -0
  997. data/sub/eac_cli/lib/eac_cli/patches/object/runner_with.rb +26 -0
  998. data/sub/eac_cli/lib/eac_cli/patches/object.rb +5 -0
  999. data/sub/eac_cli/lib/eac_cli/patches.rb +4 -0
  1000. data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +42 -0
  1001. data/sub/eac_cli/lib/eac_cli/rspec.rb +9 -0
  1002. data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +33 -0
  1003. data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +50 -0
  1004. data/sub/eac_cli/lib/eac_cli/runner/context.rb +40 -0
  1005. data/sub/eac_cli/lib/eac_cli/runner/exit.rb +13 -0
  1006. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +43 -0
  1007. data/sub/eac_cli/lib/eac_cli/runner.rb +49 -0
  1008. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +63 -0
  1009. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +82 -0
  1010. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +41 -0
  1011. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +10 -0
  1012. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +125 -0
  1013. data/sub/eac_cli/lib/eac_cli/runner_with.rb +9 -0
  1014. data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +50 -0
  1015. data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +13 -0
  1016. data/sub/eac_cli/lib/eac_cli/speaker/list.rb +61 -0
  1017. data/sub/eac_cli/lib/eac_cli/speaker/options.rb +38 -0
  1018. data/sub/eac_cli/lib/eac_cli/speaker.rb +126 -0
  1019. data/sub/eac_cli/lib/eac_cli/version.rb +5 -0
  1020. data/sub/eac_cli/lib/eac_cli.rb +7 -0
  1021. data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +18 -0
  1022. data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +14 -0
  1023. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +140 -0
  1024. data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +129 -0
  1025. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +51 -0
  1026. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +88 -0
  1027. data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +32 -0
  1028. data/sub/eac_cli/spec/rubocop_spec.rb +3 -0
  1029. data/sub/eac_cli/spec/spec_helper.rb +4 -0
  1030. data/sub/eac_fs/Gemfile +5 -0
  1031. data/sub/eac_fs/eac_fs.gemspec +20 -0
  1032. data/sub/eac_fs/lib/eac_fs/cached_download.rb +40 -0
  1033. data/sub/eac_fs/lib/eac_fs/contexts.rb +21 -0
  1034. data/sub/eac_fs/lib/eac_fs/file_info.rb +29 -0
  1035. data/sub/eac_fs/lib/eac_fs/logs/file.rb +56 -0
  1036. data/sub/eac_fs/lib/eac_fs/logs.rb +64 -0
  1037. data/sub/eac_fs/lib/eac_fs/patches/module/fs_cache.rb +15 -0
  1038. data/sub/eac_fs/lib/eac_fs/patches/module.rb +4 -0
  1039. data/sub/eac_fs/lib/eac_fs/patches/object/fs_cache.rb +32 -0
  1040. data/sub/eac_fs/lib/eac_fs/patches/object.rb +4 -0
  1041. data/sub/eac_fs/lib/eac_fs/patches/pathname/info.rb +12 -0
  1042. data/sub/eac_fs/lib/eac_fs/patches/pathname.rb +4 -0
  1043. data/sub/eac_fs/lib/eac_fs/patches.rb +4 -0
  1044. data/sub/eac_fs/lib/eac_fs/storage_tree.rb +62 -0
  1045. data/sub/eac_fs/lib/eac_fs/traversable.rb +45 -0
  1046. data/sub/eac_fs/lib/eac_fs/traverser.rb +76 -0
  1047. data/sub/eac_fs/lib/eac_fs/version.rb +5 -0
  1048. data/sub/eac_fs/lib/eac_fs.rb +7 -0
  1049. data/sub/eac_fs/spec/lib/eac_fs/storage_tree_spec.rb +32 -0
  1050. data/sub/eac_fs/spec/rubocop_spec.rb +3 -0
  1051. data/sub/eac_fs/spec/spec_helper.rb +4 -0
  1052. data/sub/eac_ruby_base0/Gemfile +5 -0
  1053. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +21 -0
  1054. data/sub/eac_ruby_base0/lib/eac_ruby_base0/application.rb +88 -0
  1055. data/sub/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +34 -0
  1056. data/sub/eac_ruby_base0/lib/eac_ruby_base0/core_ext.rb +5 -0
  1057. data/sub/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +31 -0
  1058. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +10 -0
  1059. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class.rb +4 -0
  1060. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/object/runner_with.rb +5 -0
  1061. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/object.rb +5 -0
  1062. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches.rb +4 -0
  1063. data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb +14 -0
  1064. data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec.rb +9 -0
  1065. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +92 -0
  1066. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +42 -0
  1067. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/filesystem_traverser.rb +52 -0
  1068. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/input.rb +36 -0
  1069. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/output.rb +58 -0
  1070. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with.rb +9 -0
  1071. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +5 -0
  1072. data/sub/eac_ruby_base0/lib/eac_ruby_base0.rb +7 -0
  1073. data/sub/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/confirmation_spec.rb +42 -0
  1074. data/sub/eac_ruby_base0/spec/lib/eac_ruby_base0/runner_with/output_spec.rb +81 -0
  1075. data/sub/eac_ruby_base0/spec/rubocop_spec.rb +3 -0
  1076. data/sub/eac_ruby_base0/spec/spec_helper.rb +4 -0
  1077. metadata +1078 -4
@@ -0,0 +1,387 @@
1
+ = Introducing Git Subrepos
2
+
3
+ There is a new git command called `subrepo` that is meant to be a solid
4
+ alternative to the `submodule` and `subtree` commands. All 3 of these commands
5
+ allow you to include external repositories (pinned to specific commits) in
6
+ your main repository. This is an often needed feature for project development
7
+ under a source control system like Git. Unfortunately, the `submodule` command
8
+ is severely lacking, and the `subtree` command (an attempt to make things
9
+ better) is also very flawed. Fortunately, the `subrepo` command is here to
10
+ save the day.
11
+
12
+ This article will discuss how the previous commands work, and where they go
13
+ wrong, while explaining how the new `subrepo` command fixes the issues.
14
+
15
+ It should be noted that there are 3 distinct roles (ways people use repos)
16
+ involved in discussing this topic:
17
+
18
+ * *owner* — The primary author and repo owner
19
+ * *collaborators* — Other developers who contribute to the repo
20
+ * *users* — People who simply use the repo software
21
+
22
+ == Introducing `subrepo`
23
+
24
+ While the main point is to show how subrepo addresses the shortcomings of
25
+ submodule and subtree, I'll start by giving a quick intro to the subrepo
26
+ command.
27
+
28
+ Let's say that you have a project repo called 'freebird' and you want to have
29
+ it include 2 other external repos, 'lynyrd' and 'skynyrd'. You would do the
30
+ following:
31
+
32
+ git clone git@github.com/you/freebird
33
+ cd freebird
34
+ git subrepo clone git@github.com/you/lynyrd ext/lynyrd
35
+ git subrepo clone git@github.com/you/skynyrd ext/skynyrd --branch=1975
36
+
37
+ What these commands do (at a high level) should be obvious. They "clone"
38
+ (add) the repos content into the subdirectories you told them to. The details
39
+ of what is happening to your repo will be discussed later, but adding new
40
+ subrepos is easy. If you need to update the subrepos later:
41
+
42
+ git subrepo pull ext/lynyrd
43
+ git subrepo pull ext/skynyrd --branch=1976
44
+
45
+ The lynyrd repo is tracking the upstream master branch, and you've changed the
46
+ skynyrd subrepo to the 1976 branch. Since these subrepos are owned by 'you',
47
+ you might want to change them in the context of your freebird repo. When
48
+ things are working, you can push the subrepo changes back:
49
+
50
+ git subrepo push ext/lynyrd
51
+ git subrepo push ext/skynyrd
52
+
53
+ Looks simple right? It's supposed to be. The intent of `subrepo` is to do the
54
+ right things, and to not cause problems.
55
+
56
+ Of course there's more to it under the hood, and that's what the rest of this
57
+ article is about.
58
+
59
+ == Git Submodules
60
+
61
+ Submodules tend to receive a lot of bad press. Here's some of it:
62
+
63
+ * http://ayende.com/blog/4746/the-problem-with-git-submodules
64
+ * http://somethingsinistral.net/blog/git-submodules-are-probably-not-the-answer/
65
+ * http://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/
66
+
67
+ A quick recap of some of the good and bad things about submodules:
68
+
69
+ Good:
70
+
71
+ * Use an external repo in a dedicated subdir of your project.
72
+ * Pin the external repo to a specific commit.
73
+ * The `git-submodule` command is a core part of the Git project.
74
+
75
+ Bad:
76
+
77
+ * Users have to know a repo has submodules.
78
+ * Users have to get the subrepos manually.
79
+ * Pulling a repo with submodules won't pull in the new submodule changes.
80
+ * A submodule will break if the referenced repo goes away.
81
+ * A submodule will break if a forced push removes the referenced commit.
82
+ * Can't use different submodules/commits per main project branch.
83
+ * Can't "try out" a submodule on alternate branch.
84
+ * Main repo can be pushed upstream pointing to unpushed submod commits.
85
+ * Command capability differs across Git versions.
86
+ * Often need to change remote url, to push submodule changes upstream.
87
+ * Removing or renaming a submodule requires many steps.
88
+
89
+ Internally, submodules are a real mess. They give the strong impression of
90
+ being bolted on, well after Git was designed. Some commands are aware of the
91
+ existence of submodules (although usually half-heartedly), and many commands
92
+ are oblivious. For instance the git-clone command has a `--recursive` option
93
+ to clone all subrepos, but it's not a default, so you still need to be aware
94
+ of the need. The git-checkout command does nothing with the submodules, even
95
+ if they are intended to differ across branches.
96
+
97
+ Let's talk a bit about how submodules are implemented in Git. Information
98
+ about them is stored in 3 different places (in the top level repo directory):
99
+
100
+ * `.gitmodules`
101
+ * `.git/config`
102
+ * `.git/modules` — The submodule repo's meta data (refs/objects)
103
+
104
+ So some of the information lives in the repo history (.gitmodules), but other
105
+ info (.git/) is only known to the local repo.
106
+
107
+ In addition, the submodule introduces a new low level concept, to the
108
+ commit/tree/blob graph. Normally a git tree object points to blob (file)
109
+ objects and more tree (directory) objects. Submodules have tree objects point
110
+ to *commit* objects. While this seems clever and somewhat reasonable, it also
111
+ means that every other git command (which was built on the super clean Git
112
+ data model) has to be aware of this new possibility (and deal with it
113
+ appropriately).
114
+
115
+ The point is that, while submodules are a real need, and a lot of work has
116
+ gone into making them work decently, they are essentially a kludge to the Git
117
+ model, and it is quite understandable why they haven't worked out as well as
118
+ people would expect.
119
+
120
+ NOTE: Submodules /are/ getting better with each release of Git, but it's still
121
+ an endless catch up game.
122
+
123
+ == Git Subtrees
124
+
125
+ One day, someone decided to think different. Instead of pointing to external
126
+ repos, why not just include them into the main repo (but also allow them to be
127
+ pulled and pushed separately as needed)?
128
+
129
+ At first this may feel like a wasteful approach. Why keep other repos
130
+ physically inside your main one? But if you think about it abstractly, what's
131
+ the difference? You want your users and collaborators to have all this code
132
+ because your project needs it. So why worry about how it happens? In the end,
133
+ the choice is yours, but I've grown very comfortable with this concept and
134
+ I'll try to justify it well. I should note that the first paragraph of the
135
+ `submodule` doc suggests considering this alternative.
136
+
137
+ The big win here is that you can do this using the existing git model.
138
+ Nothing new is added. You are just adding commits to a history. You can do it
139
+ different on every branch. You can merge branches sensibly.
140
+
141
+ The git-subtree command seems to have been inspired by Git's subtree merge
142
+ strategy, which it uses internally, and possibly got its name from. A subtree
143
+ merge allows you to take a completely separate Git history and make it be a
144
+ subdirectory of your repo.
145
+
146
+ Adding a subtree was the easy part. All that needed to be done after that was
147
+ to figure out a way to pull upstream changes and push local ones back
148
+ upstream. And that's what the `git-subtree` command does.
149
+
150
+ So what's the problem with git-subtree then?
151
+
152
+ Well unfortunately, it drops a few balls. The main problems come down to an
153
+ overly complicated commandline UX, poor collaborator awareness, and a fragile
154
+ and messy implementation.
155
+
156
+ Good:
157
+
158
+ * Use an external repo in a dedicated subdir of your project.
159
+ * Pin the external repo to a specific commit.
160
+ * Users get everything with a normal clone command.
161
+ * Users don't need to know that subtrees are involved.
162
+ * Can use different submodules/commits per main project branch.
163
+ * Users don't need the subtree command. Only owners and collaborators.
164
+
165
+ Bad:
166
+ * The remote url and branch info is not saved (except in the history).
167
+ * Owners and collaborators have to enter the remote for every command.
168
+ * Collaborators aren't made aware that subtrees are involved.
169
+ * Pulled history is not squashed by default.
170
+ * Creates a messy historical view. (See below)
171
+ * Bash code is complicated.
172
+ * Only one test file. Currently is failing.
173
+
174
+ As you can see, subtree makes quite a few things better, but after trying it
175
+ for a while, the experience was more annoying than submodules. For example,
176
+ consider this usage:
177
+
178
+ $ git subtree add --squash --prefix=foo git@github.com:my/thing mybranch
179
+ # weeks go by…
180
+ $ git subtree pull --squash --prefix=foo git@github.com:my/thing mybranch
181
+ # time to push local subtree changes back upstream
182
+ $ git subtree push --prefix=foo git@github.com:my/thing mybranch
183
+
184
+ The first thing you notice is the overly verbose syntax. It's justified in the
185
+ first command, but in the other 2 commands I really don't want to have to
186
+ remember what the remote and branch are that I'm using.
187
+
188
+ Moreover, my collaborators have no idea that subtrees are involved, let alone
189
+ where they came from.
190
+
191
+ Consider the equivalent subrepo commands:
192
+
193
+ $ git subrepo clone git@github.com:my/thing foo -b mybranch
194
+ $ git subrepo pull foo
195
+ $ git subrepo push foo
196
+
197
+ Collaborators see a file called 'foo/.gitrepo', and know that the subdir is a
198
+ subrepo. The file contains all the information needed by future commands
199
+ applied to that subrepo.
200
+
201
+ == Git Subrepos
202
+
203
+ Now is a good time to dive into the techinical aspects of the `subrepo`
204
+ command, but first let me explain how it came about.
205
+
206
+ As you may have surmised by now, I am the author of git-subrepo. I'd used
207
+ submodules on and off for years, and when I became aware of subtree I gave it
208
+ a try, but I quickly realized its problems. I decided maybe it could be
209
+ improved. I decided to write down my expected commandline usage and my ideals
210
+ of what it would and would not do. Then I set off to implement it. It's been a
211
+ long road, but what I ended up with was even better than what I wanted from
212
+ the start.
213
+
214
+ Let's review the Goods and Bads:
215
+
216
+ Good:
217
+
218
+ * Use an external repo in a dedicated subdir of your project.
219
+ * Pin the external repo to a specific commit.
220
+ * Users get everything with a normal clone command.
221
+ * Users don't need to know that subrepos are involved.
222
+ * Can use different submodules/commits per main project branch.
223
+ * Meta info is kept in an obvious place.
224
+ * Everyone knows when a subdir is a subrepo.
225
+ * Commandline UX is minimal and intuitive.
226
+ * Pulled history is always squashed out locally.
227
+ * Pushed history is kept intact.
228
+ * Creates a clean historical view. (See below)
229
+ * Bash code is very simple and easy to follow.
230
+ * Comprehensive test suite. Currently passing on travis:
231
+
232
+ <badge travis ingydotnet/git-subrepo>
233
+
234
+ Bad:
235
+
236
+ * --Subrepo is very new.-- (no longer true)
237
+ * --Not well tested in the wild.-- (no longer true)
238
+
239
+ This review may seem somewhat slanted, but I honestly am not aware of any
240
+ "bad" points that I'm not disclosing. That said, I am sure time will reveal
241
+ bugs and shortcomings. Those can usually be fixed. Hopefully the *model* is
242
+ correct, because that's harder to fix down the road.
243
+
244
+ OK. So how does it all work?
245
+
246
+ There are 3 main commands: clone/pull/push. Let's start with the clone
247
+ command. This is the easiest part. You give it a remote url, possibly a new
248
+ subdir to put it, and possibly a remote branch to use. I say possibly, because
249
+ the command can guess the subdir name (just like the git-clone command does),
250
+ and the branch can be the upstream default branch.
251
+
252
+ Given this we do the following steps internally:
253
+
254
+ * Fetch the remote content (for a specific refspec)
255
+ * Read the remote head tree into the index
256
+ * Checkout the index into the new subdir
257
+ * Create a new subrepo commit object for the subdir content
258
+ * Add a state file called .gitrepo to the new subrepo/subdir
259
+ * Amend the merge commit with this new file
260
+
261
+ This process adds something like this to the top of your history:
262
+
263
+ * 9b6ddc9 git subrepo clone git@github.com:you/foo.git foo/
264
+ * 37c61a5 Previous head commit of your repo
265
+
266
+ The entire history has been squashed down into one commit, and placed on top of
267
+ your history. This is important as it keeps your history as clean as possible.
268
+ You don't need to have the subrepo history in your main project, since it is
269
+ immutably available elsewhere, and you have a pointer to that place.
270
+
271
+ The new foo/.gitrepo file looks like this:
272
+
273
+ [subrepo]
274
+ remote = git@github.com:you/foo.git
275
+ branch = master
276
+ commit = 14c96c6931b41257b2d42b2edc67ddc659325823
277
+ parent = 37c61a5a234f5dd6f5c2aec037509f50d3a79b8f
278
+ cmdver = 0.1.0
279
+
280
+ It contains all the info needed now and later. Note that the repo url is the
281
+ generally pushable form, rather than the publically readable (https://…) form.
282
+ This is the best practice. Users of your repo don't need access to this url,
283
+ because the content is already in your repo. Only you and your collaborators
284
+ need this url to pull/push in the future.
285
+
286
+ The next command is the pull command. Normally you just give it the subrepo's
287
+ subdir path (although you can change the branch with -b), and it will get the
288
+ other info from the subdir/.gitrepo file.
289
+
290
+ The pull command does these steps:
291
+
292
+ * Fetch the upstream content
293
+ * Check if anything needs pulling
294
+ * Create a branch of local subrepo commits since last pull
295
+ * Rebase this branch onto the upstream commits
296
+ * Commit the HEAD of the rebased content
297
+ * Update/amend the .gitrepo file
298
+
299
+ === Clean History
300
+
301
+ I've talked a bit about clean history but let me show you a comparison between
302
+ subrepo and subtree. Let's run this command sequence using both methods. Note
303
+ the differences between /both/ the command syntax required, and the branch
304
+ history produced.
305
+
306
+ Subrepo first:
307
+
308
+ $ git subrepo clone git@github.com:user/abc
309
+ $ git subrepo clone git@github.com:user/def xyz
310
+ $ git subrepo pull abc
311
+ $ git subrepo pull xyz
312
+
313
+ The resulting history is:
314
+
315
+ * b1f60cc subrepo pull xyz
316
+ * 4fb0276 subrepo pull abc
317
+ * bcef2a0 subrepo clone git@github.com:user/def xyz
318
+ * bebf0db subrepo clone git@github.com:user/abc
319
+ * 64eeaa6 (origin/master, origin/HEAD) O HAI FREND
320
+
321
+ Compare that to *subtree*. This:
322
+
323
+ $ git subtree add abc git@github.com:user/abc master
324
+ $ git subtree add xyz git@github.com:user/def master
325
+ $ git subtree pull abc git@github.com:user/abc master
326
+ $ git subtree pull xyz git@github.com:user/def master
327
+
328
+ Produces this:
329
+
330
+ * 739e45a (HEAD, master) Merge commit '5f563469d886d53e19cb908b3a64e4229f88a2d1'
331
+ |\
332
+ | * 5f56346 Squashed 'xyz/' changes from 08c7421..365409f
333
+ * | 641f5e5 Merge commit '8d88e90ce5f653ed2e7608a71b8693a2174ea62a'
334
+ |\ \
335
+ | * | 8d88e90 Squashed 'abc/' changes from 08c7421..365409f
336
+ * | | 1703ed2 Merge commit '0e091b672c4bbbbf6bc4f6694c475d127ffa21eb' as 'xyz'
337
+ |\ \ \
338
+ | | |/
339
+ | |/|
340
+ | * | 0e091b6 Squashed 'xyz/' content from commit 08c7421
341
+ | /
342
+ * | 07b77e7 Merge commit 'cd2b30a0229d931979ed4436b995875ec563faea' as 'abc'
343
+ |\ \
344
+ | |/
345
+ | * cd2b30a Squashed 'abc/' content from commit 08c7421
346
+ * 64eeaa6 (origin/master, origin/HEAD) O HAI FREND
347
+
348
+ This was from a minimal case. Subtree history (when viewed this way at least)
349
+ gets unreasonably ugly fast. Subrepo history, by contrast, always looks as
350
+ clean as shown.
351
+
352
+ The final command, push, bascially just does the pull/rebase dance above
353
+ described, and pushes the resulting history back. It does not squash the
354
+ commits made locally, because it assumed that when you changed the local
355
+ subrepo, you made messages that were intended to eventually be published back
356
+ upstream.
357
+
358
+ == Conflict Resolution
359
+
360
+ The commands described above can also be done "by hand". If something fails
361
+ during a pull or push (generally in the rebasing) then the command will tell
362
+ you what to do to finish up.
363
+
364
+ You might choose to do everything by hand, and do your own merging strategies.
365
+ This is perfectly reasonable. The `subrepo` command offers a few other helper
366
+ commands to help you get the job done:
367
+
368
+ * `fetch` - Fetch the upstream and create a `subrepo/remote/<subdir>` ref.
369
+ * `branch` - Create a branch of local subdir commits since the last pull,
370
+ called `subrepo/<subdir>`.
371
+ * `commit` - Commit a merged branch's HEAD back into your repo.
372
+ * `status` - Show lots of useful info about the current state of the subrepos.
373
+ * `clean` - Remove branches, ref and remotes created by subrepo commands.
374
+ * `help` - Read the complete documentation!
375
+
376
+ == Conclusion
377
+
378
+ Hopefully by now, you see that submodules are a painful choice with a dubious
379
+ future, and that subtree, while a solid idea has many usage issues.
380
+
381
+ Give `subrepo` a try. It's painless, easily revertable and just might be what
382
+ the doctor ordered.
383
+
384
+ == Reference Links
385
+
386
+ * http://longair.net/blog/2010/06/02/git-submodules-explained/
387
+ * http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/
@@ -0,0 +1,15 @@
1
+ ---
2
+ version: 0.0.7
3
+ date: Sat Jan 23 16:28:59 PST 2016
4
+ changes:
5
+ - Update tooling, and copyright
6
+ ---
7
+ version: 0.0.6
8
+ date: Fri Jan 23 21:05:15 PST 2015
9
+ changes:
10
+ - Update tooling, and copyright
11
+ ---
12
+ version: 0.0.1
13
+ date: Sun Oct 27 19:07:51 PDT 2013
14
+ changes:
15
+ - First release.
@@ -0,0 +1,21 @@
1
+ (The MIT License)
2
+
3
+ Copyright © 2013-2016 Ingy döt Net
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the ‘Software’), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,45 @@
1
+ ifeq ($(MAKECMDGOALS),install)
2
+ ifeq "$(shell bpan version 2>/dev/null)" ""
3
+ $(error 'BPAN not installed. See http://bpan.org')
4
+ endif
5
+ endif
6
+
7
+ NAME := bash+
8
+ LIB := lib/$(NAME).bash
9
+ DOC := doc/$(NAME).swim
10
+ MAN1 := man/man1
11
+ MAN3 := man/man3
12
+
13
+ INSTALL_LIB ?= $(shell bpan env BPAN_LIB)
14
+ INSTALL_DIR ?= test
15
+ INSTALL_MAN1 ?= $(shell bpan env BPAN_MAN1)
16
+ INSTALL_MAN3 ?= $(shell bpan env BPAN_MAN3)
17
+
18
+ default: help
19
+
20
+ help:
21
+ @echo 'Rules: test, install, doc'
22
+
23
+ .PHONY: test
24
+ test:
25
+ prove $(PROVEOPT:%=% )test/
26
+
27
+ install:
28
+ install -C -d -m 0755 $(INSTALL_LIB)/$(INSTALL_DIR)/
29
+ install -C -m 0755 $(LIB) $(INSTALL_LIB)/$(INSTALL_DIR)/
30
+ install -C -d -m 0755 $(INSTALL_MAN1)/
31
+ install -C -d -m 0755 $(INSTALL_MAN3)/
32
+ install -C -m 0644 $(MAN1)/$(NAME).1 $(INSTALL_MAN1)/
33
+ install -C -m 0644 $(MAN3)/$(NAME).3 $(INSTALL_MAN3)/
34
+
35
+ .PHONY: doc
36
+ doc: ReadMe.pod $(MAN1)/$(NAME).1 $(MAN3)/$(NAME).3
37
+
38
+ ReadMe.pod: $(DOC)
39
+ swim --to=pod --complete --wrap $< > $@
40
+
41
+ $(MAN1)/%.1: doc/%.swim
42
+ swim --to=man $< > $@
43
+
44
+ $(MAN3)/%.3: doc/%.swim
45
+ swim --to=man $< > $@
@@ -0,0 +1,28 @@
1
+ =meta: 0.0.2
2
+
3
+ name: bashplus
4
+ version: 0.0.7
5
+ abstract: Modern Bash Programming
6
+ homepage: http://bpan.org/package/bashplus/
7
+
8
+ license: MIT
9
+ copyright: 2013-2016
10
+ author:
11
+ name: Ingy döt Net
12
+ email: ingy@ingy.net
13
+ github: ingydotnet
14
+ twitter: ingydotnet
15
+ freenode: ingy
16
+ homepage: http://ingy.net
17
+
18
+ requires:
19
+ bash: 3.2.0
20
+ test:
21
+ cmd: make test
22
+ install:
23
+ cmd: make install
24
+
25
+ devel:
26
+ git: git@github.org/ingydotnet/bashplus
27
+ irc: irc.freenode.net/bpan
28
+ bug: https://github.com/ingydotnet/bashplus/issues/
@@ -0,0 +1,77 @@
1
+ =pod
2
+
3
+ =for comment
4
+ DO NOT EDIT. This Pod was generated by Swim v0.1.41.
5
+ See http://github.com/ingydotnet/swim-pm#readme
6
+
7
+ =encoding utf8
8
+
9
+ =head1 Name
10
+
11
+ Bash+(1) - Modern Bash Programming
12
+
13
+ =for html
14
+ <a href="https://travis-ci.org/ingydotnet/bashplus"><img src="https://travis-ci.org/ingydotnet/bashplus.png" alt="bashplus"></a>
15
+
16
+ =head1 Synopsis
17
+
18
+ source bash+ :std :array
19
+
20
+ use Foo::Bar this that
21
+
22
+ Array.new args "$@"
23
+
24
+ if args.empty?; then
25
+ die "I need args!"
26
+ fi
27
+
28
+ Foo::Bar.new foo args
29
+
30
+ this is awesome # <= this is a real command! (You just imported it)
31
+
32
+ =head1 Description
33
+
34
+ Bash+ is just Bash... B<plus> some libraries that can make Bash programming a
35
+ lot nicer.
36
+
37
+ =for comment # Installation
38
+
39
+ Get the source code from GitHub:
40
+
41
+ git clone git@github.com:ingydotnet/bashplus
42
+
43
+ Then run:
44
+
45
+ make test
46
+ make install # Possibly with 'sudo'
47
+
48
+ =head1 Usage
49
+
50
+ For now look at some libraries the use Bash+:
51
+
52
+ =over
53
+
54
+ =item * L<https://github.com/ingydotnet/git-hub>
55
+
56
+ =item * L<https://github.com/ingydotnet/json-bash>
57
+
58
+ =item * L<https://github.com/ingydotnet/test-more-bash>
59
+
60
+ =back
61
+
62
+ =head1 Status
63
+
64
+ If you are interested in chatting about this, C</join #bpan> on
65
+ irc.freenode.net.
66
+
67
+ =head1 Author
68
+
69
+ Written by Ingy döt Net <ingy@ingy.net>
70
+
71
+ =head1 Copyright & License
72
+
73
+ Copyright 2013-2016. Ingy döt Net.
74
+
75
+ The MIT License (MIT).
76
+
77
+ =cut
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ #------------------------------------------------------------------------------
3
+ # Bash+ - Modern Bash Programming
4
+ #
5
+ # Copyright (c) 2013-2016 Ingy döt Net
6
+ #------------------------------------------------------------------------------
7
+
8
+ set -e
9
+ shopt -s compat31&>/dev/null||:
10
+
11
+ #------------------------------------------------------------------------------
12
+ # Determine how `bash+` was called, and do the right thing:
13
+ #------------------------------------------------------------------------------
14
+ if [ "${BASH_SOURCE[0]}" != "$0" ]; then
15
+ # 'bash+' is being sourced:
16
+ [[ "${BASH_SOURCE[0]}" =~ /bin/bash\\+$ ]] || {
17
+ echo "Invalid Bash+ path '${BASH_SOURCE[0]}'" 2> /dev/null
18
+ exit 1
19
+ }
20
+ source "${BASH_SOURCE[0]%/bin/*}"/lib/bash+.bash || return $?
21
+ bash+:import "$@"
22
+ return $?
23
+ else
24
+ if [ $# -eq 1 -a "$1" == --version ]; then
25
+ echo 'bash+ version 0.0.7'
26
+ else
27
+ cat <<...
28
+
29
+ Greetings modern Bash programmer. Welcome to Bash+!
30
+
31
+ Bash+ is framework that makes Bash programming more like Ruby and Perl.
32
+
33
+ See: https://github.com/bpan-org/bashplus
34
+
35
+ If you got here trying to use bash+ in a program, you need to source it:
36
+
37
+ source bash+
38
+
39
+ Happy Bash Hacking!
40
+
41
+ ...
42
+ fi
43
+ fi
@@ -0,0 +1,61 @@
1
+ Bash+(1)
2
+ ========
3
+
4
+ Modern Bash Programming
5
+
6
+ <badge travis ingydotnet/bashplus>
7
+
8
+ = Synopsis
9
+
10
+ source bash+ :std :array
11
+
12
+ use Foo::Bar this that
13
+
14
+ Array.new args "$@"
15
+
16
+ if args.empty?; then
17
+ die "I need args!"
18
+ fi
19
+
20
+ Foo::Bar.new foo args
21
+
22
+ this is awesome # <= this is a real command! (You just imported it)
23
+
24
+ = Description
25
+
26
+ Bash+ is just Bash... *plus* some libraries that can make Bash programming a
27
+ lot nicer.
28
+
29
+ ## Installation
30
+
31
+ Get the source code from GitHub:
32
+
33
+ git clone git@github.com:ingydotnet/bashplus
34
+
35
+ Then run:
36
+
37
+ make test
38
+ make install # Possibly with 'sudo'
39
+
40
+ = Usage
41
+
42
+ For now look at some libraries the use Bash+:
43
+
44
+ * https://github.com/ingydotnet/git-hub
45
+ * https://github.com/ingydotnet/json-bash
46
+ * https://github.com/ingydotnet/test-more-bash
47
+
48
+ = Status
49
+
50
+ If you are interested in chatting about this, `/join #bpan` on
51
+ irc.freenode.net.
52
+
53
+ = Author
54
+
55
+ Written by Ingy döt Net <ingy@ingy.net>
56
+
57
+ = Copyright & License
58
+
59
+ Copyright 2013-2016. Ingy döt Net.
60
+
61
+ The MIT License (MIT).