eac_tools 0.86.1 → 0.86.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +40 -35
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +2 -2
  5. data/sub/avm/lib/avm/rspec/setup/launcher.rb +1 -0
  6. data/sub/avm/lib/avm/scms/base/branches.rb +22 -0
  7. data/sub/avm/lib/avm/scms/base/remotes.rb +22 -0
  8. data/sub/avm/lib/avm/scms/branch.rb +26 -0
  9. data/sub/avm/lib/avm/scms/remote.rb +11 -0
  10. data/sub/avm/lib/avm/sources/issues/deliver.rb +52 -0
  11. data/sub/avm/lib/avm/sources/issues.rb +11 -0
  12. data/sub/avm/lib/avm/version.rb +1 -1
  13. data/sub/avm-git/avm-git.gemspec +23 -0
  14. data/sub/avm-git/lib/avm/git/application_scms/base/assert_main_at.rb +49 -0
  15. data/sub/avm-git/lib/avm/git/application_scms/base.rb +21 -0
  16. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/sources.rb → avm-git/lib/avm/git/application_scms.rb} +2 -2
  17. data/sub/avm-git/lib/avm/git/commit/class_methods.rb +31 -0
  18. data/sub/avm-git/lib/avm/git/commit/diff_tree_line.rb +32 -0
  19. data/sub/avm-git/lib/avm/git/commit/file.rb +46 -0
  20. data/sub/avm-git/lib/avm/git/commit.rb +59 -0
  21. data/sub/avm-git/lib/avm/git/issue/complete/commits.rb +42 -0
  22. data/sub/avm-git/lib/avm/git/issue/complete/git_subrepos.rb +23 -0
  23. data/sub/avm-git/lib/avm/git/issue/complete/local_branch.rb +61 -0
  24. data/sub/avm-git/lib/avm/git/issue/complete/local_tag.rb +39 -0
  25. data/sub/avm-git/lib/avm/git/issue/complete/push.rb +60 -0
  26. data/sub/avm-git/lib/avm/git/issue/complete/remote.rb +33 -0
  27. data/sub/avm-git/lib/avm/git/issue/complete/test.rb +40 -0
  28. data/sub/avm-git/lib/avm/git/issue/complete/tracker.rb +28 -0
  29. data/sub/avm-git/lib/avm/git/issue/complete/validation.rb +39 -0
  30. data/sub/avm-git/lib/avm/git/issue/complete/validations.rb +53 -0
  31. data/sub/avm-git/lib/avm/git/issue/complete/working_tree.rb +19 -0
  32. data/sub/avm-git/lib/avm/git/issue/complete.rb +66 -0
  33. data/sub/avm-git/lib/avm/git/issue.rb +11 -0
  34. data/sub/avm-git/lib/avm/git/launcher/base/class_methods.rb +28 -0
  35. data/sub/avm-git/lib/avm/git/launcher/base/dirty_files.rb +23 -0
  36. data/sub/avm-git/lib/avm/git/launcher/base/remotes.rb +40 -0
  37. data/sub/avm-git/lib/avm/git/launcher/base/subrepo.rb +44 -0
  38. data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +59 -0
  39. data/sub/avm-git/lib/avm/git/launcher/base.rb +87 -0
  40. data/sub/avm-git/lib/avm/git/launcher/error.rb +15 -0
  41. data/sub/avm-git/lib/avm/git/launcher/mirror_update.rb +38 -0
  42. data/sub/avm-git/lib/avm/git/launcher/publish_base.rb +131 -0
  43. data/sub/avm-git/lib/avm/git/launcher/remote.rb +55 -0
  44. data/sub/avm-git/lib/avm/git/launcher/sub_warp_base.rb +33 -0
  45. data/sub/avm-git/lib/avm/git/launcher/warp_base.rb +68 -0
  46. data/sub/avm-git/lib/avm/git/launcher.rb +7 -0
  47. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/local_project_mixin.rb +19 -0
  48. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/publish.rb +15 -0
  49. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git/warp.rb +27 -0
  50. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git.rb +25 -0
  51. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/publish.rb +31 -0
  52. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo/warp.rb +88 -0
  53. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subrepo.rb +36 -0
  54. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/publish.rb +14 -0
  55. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree/warp.rb +32 -0
  56. data/sub/avm-git/lib/avm/git/launcher_stereotypes/git_subtree.rb +51 -0
  57. data/sub/avm-git/lib/avm/git/launcher_stereotypes/provider.rb +22 -0
  58. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/file_formats.rb → avm-git/lib/avm/git/launcher_stereotypes.rb} +2 -2
  59. data/sub/avm-git/lib/avm/git/organize/reference_update.rb +34 -0
  60. data/sub/avm-git/lib/avm/git/organize/repository.rb +77 -0
  61. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/instances.rb → avm-git/lib/avm/git/organize.rb} +2 -2
  62. data/sub/avm-git/lib/avm/git/revision_test.rb +105 -0
  63. data/sub/avm-git/lib/avm/git/scms/git/branch.rb +31 -0
  64. data/sub/avm-git/lib/avm/git/scms/git/branches.rb +20 -0
  65. data/sub/avm-git/lib/avm/git/scms/git/change_tracker.rb +36 -0
  66. data/sub/avm-git/lib/avm/git/scms/git/changed_file.rb +16 -0
  67. data/sub/avm-git/lib/avm/git/scms/git/changed_files.rb +24 -0
  68. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy.rb +43 -0
  69. data/sub/avm-git/lib/avm/git/scms/git/commit/deploy_methods.rb +30 -0
  70. data/sub/avm-git/lib/avm/git/scms/git/commit.rb +67 -0
  71. data/sub/avm-git/lib/avm/git/scms/git/commit_dirty.rb +36 -0
  72. data/sub/avm-git/lib/avm/git/scms/git/commits.rb +47 -0
  73. data/sub/avm-git/lib/avm/git/scms/git/interval.rb +31 -0
  74. data/sub/avm-git/lib/avm/git/scms/git/milestones.rb +21 -0
  75. data/sub/avm-git/lib/avm/git/scms/git/remote.rb +21 -0
  76. data/sub/avm-git/lib/avm/git/scms/git/remotes.rb +32 -0
  77. data/sub/avm-git/lib/avm/git/scms/git/run_commit.rb +57 -0
  78. data/sub/avm-git/lib/avm/git/scms/git.rb +44 -0
  79. data/sub/avm-git/lib/avm/git/scms/git_sub_base/changed_file.rb +21 -0
  80. data/sub/avm-git/lib/avm/git/scms/git_sub_base/commit.rb +27 -0
  81. data/sub/avm-git/lib/avm/git/scms/git_sub_base/interval.rb +28 -0
  82. data/sub/avm-git/lib/avm/git/scms/git_sub_base.rb +33 -0
  83. data/sub/avm-git/lib/avm/git/scms/git_subrepo.rb +37 -0
  84. data/sub/avm-git/lib/avm/git/scms/git_subtree.rb +26 -0
  85. data/sub/avm-git/lib/avm/git/scms/provider.rb +21 -0
  86. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0/source_generators.rb → avm-git/lib/avm/git/scms.rb} +2 -2
  87. data/sub/avm-git/lib/avm/git/subrepo_check/parent.rb +51 -0
  88. data/sub/avm-git/lib/avm/git/subrepo_check/remote.rb +89 -0
  89. data/sub/avm-git/lib/avm/git/subrepo_check/show_result.rb +32 -0
  90. data/sub/avm-git/lib/avm/git/subrepo_check.rb +38 -0
  91. data/sub/avm-git/lib/avm/git/subrepo_checks.rb +60 -0
  92. data/sub/avm-git/lib/avm/git/vendor/github.rb +20 -0
  93. data/sub/avm-git/lib/avm/git/vendor.rb +11 -0
  94. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0 → avm-git/lib/avm/git}/version.rb +2 -2
  95. data/sub/{avm-eac_php_base0/lib/avm/eac_php_base0.rb → avm-git/lib/avm/git.rb} +1 -1
  96. data/sub/avm-git/locale/en.yml +6 -0
  97. data/sub/avm-git/locale/pt-BR.yml +6 -0
  98. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec.rb +13 -0
  99. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.source.out +1 -0
  100. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  101. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  102. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  103. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  104. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  105. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  106. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  107. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  108. data/sub/avm-git/spec/lib/avm/git/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  109. data/sub/avm-git/spec/lib/avm/git/commit_spec.rb +56 -0
  110. data/sub/avm-git/spec/lib/avm/git/launcher/base_spec.rb +45 -0
  111. data/sub/avm-git/spec/lib/avm/git/scms/git/commit/deploy_spec.rb +92 -0
  112. data/sub/avm-git/spec/lib/avm/git/scms/git_spec.rb +8 -0
  113. data/sub/avm-git/spec/lib/avm/git/scms/git_subrepo_spec.rb +8 -0
  114. data/sub/avm-git/spec/lib/avm/git/vendor/github_spec.rb +23 -0
  115. data/sub/avm-tools/avm-tools.gemspec +3 -3
  116. data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +3 -3
  117. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  118. data/sub/eac_git/Gemfile +8 -0
  119. data/sub/eac_git/eac_git.gemspec +20 -0
  120. data/sub/eac_git/lib/eac_git/executables.rb +48 -0
  121. data/sub/eac_git/lib/eac_git/local/branch.rb +47 -0
  122. data/sub/eac_git/lib/eac_git/local/commit/archive.rb +19 -0
  123. data/sub/eac_git/lib/eac_git/local/commit/changed_file.rb +46 -0
  124. data/sub/eac_git/lib/eac_git/local/commit/diff_tree_line.rb +32 -0
  125. data/sub/eac_git/lib/eac_git/local/commit.rb +73 -0
  126. data/sub/eac_git/lib/eac_git/local/dirty_files.rb +48 -0
  127. data/sub/eac_git/lib/eac_git/local/log.rb +17 -0
  128. data/sub/eac_git/lib/eac_git/local/remote/push.rb +35 -0
  129. data/sub/eac_git/lib/eac_git/local/remote.rb +50 -0
  130. data/sub/eac_git/lib/eac_git/local/remotes.rb +20 -0
  131. data/sub/eac_git/lib/eac_git/local/subrepo/config.rb +43 -0
  132. data/sub/eac_git/lib/eac_git/local/subrepo.rb +49 -0
  133. data/sub/eac_git/lib/eac_git/local.rb +127 -0
  134. data/sub/eac_git/lib/eac_git/remote.rb +24 -0
  135. data/sub/eac_git/lib/eac_git/remote_like/ls_result.rb +20 -0
  136. data/sub/eac_git/lib/eac_git/remote_like.rb +32 -0
  137. data/sub/eac_git/lib/eac_git/rspec/setup.rb +23 -0
  138. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/directory.rb +36 -0
  139. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/file.rb +22 -0
  140. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/fs_object.rb +27 -0
  141. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo/repository.rb +34 -0
  142. data/sub/eac_git/lib/eac_git/rspec/stubbed_git_local_repo.rb +29 -0
  143. data/sub/eac_git/lib/eac_git/rspec.rb +9 -0
  144. data/sub/eac_git/lib/eac_git/version.rb +5 -0
  145. data/sub/eac_git/lib/eac_git.rb +7 -0
  146. data/sub/eac_git/spec/lib/eac_git/executables_spec.rb +13 -0
  147. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec.rb +13 -0
  148. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.source.out +1 -0
  149. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/add.target.yaml +7 -0
  150. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.source.out +1 -0
  151. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/modify.target.yaml +7 -0
  152. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.source.out +1 -0
  153. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/remove.target.yaml +7 -0
  154. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.source.out +2 -0
  155. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename.target.yaml +13 -0
  156. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.source.out +2 -0
  157. data/sub/eac_git/spec/lib/eac_git/local/commit/diff_tree_line_spec_files/rename_modify.target.yaml +13 -0
  158. data/sub/eac_git/spec/lib/eac_git/local/commit_spec.rb +58 -0
  159. data/sub/eac_git/spec/lib/eac_git/local/dirty_files_spec.rb +20 -0
  160. data/sub/eac_git/spec/rubocop_spec.rb +3 -0
  161. data/sub/eac_git/spec/spec_helper.rb +4 -0
  162. data/sub/eac_git/vendor/git-subrepo/Changes +110 -0
  163. data/sub/eac_git/vendor/git-subrepo/Intro.pod +509 -0
  164. data/sub/eac_git/vendor/git-subrepo/License +21 -0
  165. data/sub/eac_git/vendor/git-subrepo/Makefile +82 -0
  166. data/sub/eac_git/vendor/git-subrepo/Meta +28 -0
  167. data/sub/eac_git/vendor/git-subrepo/ReadMe.pod +698 -0
  168. data/sub/eac_git/vendor/git-subrepo/doc/comparison.swim +35 -0
  169. data/sub/eac_git/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
  170. data/sub/eac_git/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
  171. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Changes +15 -0
  172. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/License +21 -0
  173. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
  174. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/Meta +28 -0
  175. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
  176. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
  177. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
  178. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
  179. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
  180. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
  181. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
  182. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
  183. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
  184. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
  185. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
  186. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
  187. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
  188. data/sub/eac_git/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
  189. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
  190. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/License +21 -0
  191. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
  192. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
  193. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
  194. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
  195. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
  196. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
  197. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
  198. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
  199. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
  200. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
  201. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
  202. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
  203. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
  204. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
  205. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
  206. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
  207. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
  208. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
  209. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
  210. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
  211. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
  212. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
  213. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
  214. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
  215. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
  216. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
  217. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
  218. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
  219. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
  220. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
  221. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
  222. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
  223. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
  224. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
  225. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
  226. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
  227. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
  228. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
  229. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
  230. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
  231. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
  232. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
  233. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
  234. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
  235. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
  236. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
  237. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
  238. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
  239. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
  240. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
  241. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
  242. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
  243. data/sub/eac_git/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
  244. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo +1903 -0
  245. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
  246. data/sub/eac_git/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
  247. data/sub/eac_git/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
  248. data/sub/eac_git/vendor/git-subrepo/note/0.4.0 +12 -0
  249. data/sub/eac_git/vendor/git-subrepo/note/AllGitCmds +148 -0
  250. data/sub/eac_git/vendor/git-subrepo/note/Cases +32 -0
  251. data/sub/eac_git/vendor/git-subrepo/note/Commands +33 -0
  252. data/sub/eac_git/vendor/git-subrepo/note/Dags +199 -0
  253. data/sub/eac_git/vendor/git-subrepo/note/Gists +7 -0
  254. data/sub/eac_git/vendor/git-subrepo/note/Links +25 -0
  255. data/sub/eac_git/vendor/git-subrepo/note/Plugins +10 -0
  256. data/sub/eac_git/vendor/git-subrepo/note/Spec +39 -0
  257. data/sub/eac_git/vendor/git-subrepo/note/Story1 +57 -0
  258. data/sub/eac_git/vendor/git-subrepo/note/ToDo +55 -0
  259. data/sub/eac_git/vendor/git-subrepo/note/design.swim +137 -0
  260. data/sub/eac_git/vendor/git-subrepo/note/design2.swim +85 -0
  261. data/sub/eac_git/vendor/git-subrepo/note/init-test +38 -0
  262. data/sub/eac_git/vendor/git-subrepo/note/pull-dance.txt +18 -0
  263. data/sub/eac_git/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
  264. data/sub/eac_git/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
  265. data/sub/eac_git/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
  266. data/sub/eac_git/vendor/git-subrepo/note/test.sh +58 -0
  267. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
  268. data/sub/eac_git/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
  269. data/sub/eac_git/vendor/git-subrepo/share/completion.bash +42 -0
  270. data/sub/eac_git/vendor/git-subrepo/share/enable-completion.sh +50 -0
  271. data/sub/eac_git/vendor/git-subrepo/share/git-completion.bash +2738 -0
  272. data/sub/eac_git/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
  273. data/sub/eac_git/vendor/git-subrepo/test/branch-all.t +41 -0
  274. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
  275. data/sub/eac_git/vendor/git-subrepo/test/branch-rev-list.t +47 -0
  276. data/sub/eac_git/vendor/git-subrepo/test/branch.t +52 -0
  277. data/sub/eac_git/vendor/git-subrepo/test/clean.t +43 -0
  278. data/sub/eac_git/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
  279. data/sub/eac_git/vendor/git-subrepo/test/clone.t +107 -0
  280. data/sub/eac_git/vendor/git-subrepo/test/compile.t +19 -0
  281. data/sub/eac_git/vendor/git-subrepo/test/config.t +58 -0
  282. data/sub/eac_git/vendor/git-subrepo/test/encode.t +91 -0
  283. data/sub/eac_git/vendor/git-subrepo/test/error.t +171 -0
  284. data/sub/eac_git/vendor/git-subrepo/test/fetch.t +43 -0
  285. data/sub/eac_git/vendor/git-subrepo/test/gitignore.t +61 -0
  286. data/sub/eac_git/vendor/git-subrepo/test/init.t +64 -0
  287. data/sub/eac_git/vendor/git-subrepo/test/issue29.t +98 -0
  288. data/sub/eac_git/vendor/git-subrepo/test/issue95.t +98 -0
  289. data/sub/eac_git/vendor/git-subrepo/test/issue96.t +96 -0
  290. data/sub/eac_git/vendor/git-subrepo/test/pull-all.t +38 -0
  291. data/sub/eac_git/vendor/git-subrepo/test/pull-merge.t +113 -0
  292. data/sub/eac_git/vendor/git-subrepo/test/pull-message.t +88 -0
  293. data/sub/eac_git/vendor/git-subrepo/test/pull-new-branch.t +58 -0
  294. data/sub/eac_git/vendor/git-subrepo/test/pull-ours.t +90 -0
  295. data/sub/eac_git/vendor/git-subrepo/test/pull-theirs.t +82 -0
  296. data/sub/eac_git/vendor/git-subrepo/test/pull-twice.t +44 -0
  297. data/sub/eac_git/vendor/git-subrepo/test/pull-worktree.t +40 -0
  298. data/sub/eac_git/vendor/git-subrepo/test/pull.t +99 -0
  299. data/sub/eac_git/vendor/git-subrepo/test/push-after-init.t +51 -0
  300. data/sub/eac_git/vendor/git-subrepo/test/push-force.t +56 -0
  301. data/sub/eac_git/vendor/git-subrepo/test/push-new-branch.t +61 -0
  302. data/sub/eac_git/vendor/git-subrepo/test/push-no-changes.t +29 -0
  303. data/sub/eac_git/vendor/git-subrepo/test/push-squash.t +56 -0
  304. data/sub/eac_git/vendor/git-subrepo/test/push.t +176 -0
  305. data/sub/eac_git/vendor/git-subrepo/test/reclone.t +45 -0
  306. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
  307. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/config +4 -0
  308. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  309. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  310. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  311. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  312. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  313. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  314. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
  315. data/sub/eac_git/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
  316. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
  317. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/config +4 -0
  318. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  319. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  320. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  321. data/sub/eac_git/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
  322. data/sub/eac_git/vendor/git-subrepo/test/repo/init/HEAD +1 -0
  323. data/sub/eac_git/vendor/git-subrepo/test/repo/init/config +5 -0
  324. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  325. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  326. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
  327. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  328. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  329. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  330. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  331. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  332. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
  333. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  334. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  335. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
  336. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  337. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  338. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
  339. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
  340. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
  341. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
  342. data/sub/eac_git/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  343. data/sub/eac_git/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
  344. data/sub/eac_git/vendor/git-subrepo/test/setup +205 -0
  345. data/sub/eac_git/vendor/git-subrepo/test/status.t +68 -0
  346. data/sub/eac_git/vendor/git-subrepo/test/submodule.t +45 -0
  347. metadata +352 -40
  348. data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +0 -21
  349. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb +0 -22
  350. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb +0 -20
  351. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/base.rb +0 -13
  352. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators/base.rb +0 -28
  353. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources/base.rb +0 -17
  354. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb +0 -7
  355. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.source +0 -10
  356. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.target +0 -10
  357. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.source +0 -4
  358. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code2.php.target +0 -3
  359. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.source +0 -64
  360. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.target +0 -64
  361. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.source +0 -4
  362. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.target +0 -3
  363. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec.rb +0 -8
  364. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec_files/no_options/index.php +0 -0
  365. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/sources/base_spec.rb +0 -7
  366. data/sub/avm-eac_php_base0/template/avm/eac_php_base0/source_generators/base/index.php +0 -0
  367. /data/sub/{avm-eac_php_base0 → avm-git}/Gemfile +0 -0
  368. /data/sub/{avm-eac_php_base0 → avm-git}/spec/rubocop_spec.rb +0 -0
  369. /data/sub/{avm-eac_php_base0 → avm-git}/spec/spec_helper.rb +0 -0
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/subrepo_checks'
4
+ require 'eac_git/local'
5
+
6
+ module Avm
7
+ module Git
8
+ module Issue
9
+ class Complete
10
+ module GitSubrepos
11
+ def git_subrepos_result
12
+ return ::Avm::Result.error('Unclean workspace') unless clean_workspace?
13
+
14
+ infom 'Checking Git subrepos...'
15
+ r = ::Avm::Git::SubrepoChecks.new(::EacGit::Local.new(launcher_git)).add_all_subrepos
16
+ r.check_remote = true
17
+ r.result
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/result'
4
+
5
+ module Avm
6
+ module Git
7
+ module Issue
8
+ class Complete
9
+ module LocalBranch
10
+ NO_CURRENT_BRANCH_NAME = 'none'
11
+
12
+ # Retrieves the current local branch.
13
+ #
14
+ # @return [EacGit::Local::Branch, nil]
15
+ def branch_uncached
16
+ eac_git.current_branch
17
+ end
18
+
19
+ def branch_hash_uncached
20
+ branch.if_present(&:current_commit_id)
21
+ end
22
+
23
+ def branch_name
24
+ branch.if_present(NO_CURRENT_BRANCH_NAME, &:name)
25
+ end
26
+
27
+ def branch_name_result
28
+ ::Avm::Result.success_or_error(issue_id.present?, branch_name)
29
+ end
30
+
31
+ def branch_hash_result
32
+ ::Avm::Result.success_or_error(
33
+ branch_hash.present?,
34
+ branch_hash
35
+ )
36
+ end
37
+
38
+ def follow_master_result
39
+ return ::Avm::Result.neutral('No branch hash') unless branch_hash
40
+
41
+ r = follow_master?
42
+ ::Avm::Result.success_or_error(r, 'yes', 'no')
43
+ end
44
+
45
+ def follow_master?
46
+ remote_master_hash ? launcher_git.descendant?(branch_hash, remote_master_hash) : true
47
+ end
48
+
49
+ def remove_local_branch
50
+ return unless branch
51
+
52
+ info 'Removendo branch local...'
53
+ bn = branch_name
54
+ git_execute(['checkout', branch_hash])
55
+ git_execute(['branch', '-D', bn])
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/result'
4
+
5
+ module Avm
6
+ module Git
7
+ module Issue
8
+ class Complete
9
+ module LocalTag
10
+ def assert_tag
11
+ if tag_hash
12
+ return if tag_hash == branch_hash
13
+
14
+ delete_tag
15
+ end
16
+ create_tag
17
+ end
18
+
19
+ def delete_tag
20
+ info 'Removendo tag...'
21
+ git_execute(['tag', '-d', branch_name])
22
+ end
23
+
24
+ def tag
25
+ "refs/tags/#{branch_name}"
26
+ end
27
+
28
+ def tag_hash
29
+ launcher_git.rev_parse(tag)
30
+ end
31
+
32
+ def create_tag
33
+ git_execute(['tag', branch_name, branch_hash])
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Issue
6
+ class Complete
7
+ module Push
8
+ def dry_push_args
9
+ %w[push --dry-run] + [remote_name] + pushs
10
+ end
11
+
12
+ def dry_push_result
13
+ return ::Avm::Result.error('Nothing to push') if pushs.empty?
14
+
15
+ dry_push_execution_result
16
+ end
17
+
18
+ def push
19
+ if pushs.empty?
20
+ info 'PUSH: Nada a enviar'
21
+ else
22
+ info "PUSH: enviando \"#{pushs}\"..."
23
+ git_execute(%w[push origin] + pushs)
24
+ end
25
+ end
26
+
27
+ def pushs_uncached
28
+ [master_push, remove_branch_push, tag_push].compact
29
+ end
30
+
31
+ def master_push
32
+ remote_master_hash == branch_hash ? nil : "#{branch_hash}:refs/heads/master"
33
+ end
34
+
35
+ def remove_branch_push
36
+ remote_branch_hash ? ":refs/heads/#{branch.name}" : nil
37
+ end
38
+
39
+ def tag_push
40
+ return nil unless !remote_tag_hash || remote_tag_hash != branch_hash
41
+
42
+ "#{branch_hash}:#{tag}"
43
+ end
44
+
45
+ private
46
+
47
+ def dry_push_execution_result
48
+ r = launcher_git.execute(dry_push_args)
49
+ message = if r.fetch(:exit_code).zero?
50
+ 'ok'
51
+ else
52
+ r.fetch(:stderr) + "\n#{::Shellwords.join(dry_push_args)}"
53
+ end
54
+ ::Avm::Result.success_or_error(r.fetch(:exit_code).zero?, message)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Issue
6
+ class Complete
7
+ module Remote
8
+ def remote_master_hash
9
+ remote_hashs['refs/heads/master']
10
+ end
11
+
12
+ def remote_branch_hash
13
+ remote_hashs["refs/heads/#{branch.name}"]
14
+ end
15
+
16
+ def remote_tag_hash
17
+ remote_hashs[tag]
18
+ end
19
+
20
+ private
21
+
22
+ def remote_name
23
+ 'origin'
24
+ end
25
+
26
+ def remote_hashs_uncached
27
+ launcher_git.remote_hashs(remote_name)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/sources/configuration'
4
+ require 'avm/result'
5
+ require 'avm/sources/base'
6
+ require 'avm/sources/tests/builder'
7
+ require 'eac_ruby_utils/fs/temp'
8
+
9
+ module Avm
10
+ module Git
11
+ module Issue
12
+ class Complete
13
+ module Test
14
+ def test_result
15
+ infom 'Running tests...'
16
+ test_performer.units.each do |single|
17
+ return ::Avm::Result.error(test_failed_result_message(single)) if single.failed?
18
+ end
19
+ ::Avm::Result.success('all passed')
20
+ end
21
+
22
+ private
23
+
24
+ def test_failed_result_message(single)
25
+ { 'Source' => single, 'STDOUT' => single.logs[:stdout],
26
+ 'STDERR' => single.logs[:stderr] }.map { |k, v| "#{k}: #{v}" }.join(', ')
27
+ end
28
+
29
+ def test_performer
30
+ ::Avm::Sources::Tests::Builder
31
+ .new(::Avm::Registry.sources.detect(launcher_git))
32
+ .include_main(true)
33
+ .include_subs(true)
34
+ .performer
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'clipboard'
4
+
5
+ module Avm
6
+ module Git
7
+ module Issue
8
+ class Complete
9
+ module Tracker
10
+ def clipboard_copy_tracker_message
11
+ ::Clipboard.copy(textile_tracker_message)
12
+ infov 'Copied to clipboard', textile_tracker_message
13
+ end
14
+
15
+ private
16
+
17
+ def textile_tracker_message_uncached
18
+ "Revisado para commit:#{branch_short_hash}, ok."
19
+ end
20
+
21
+ def branch_short_hash
22
+ git_execute(['log', '--pretty=format:%h', '-1', '-q', branch_hash])
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/result'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module Git
8
+ module Issue
9
+ class Complete
10
+ class Validation
11
+ enable_simple_cache
12
+ common_constructor :parent, :key, :label
13
+
14
+ SKIPPED_RESULT_MESSAGE = 'skipped'
15
+
16
+ def skip?
17
+ parent.skip_validations.include?(key)
18
+ end
19
+
20
+ private
21
+
22
+ def result_uncached
23
+ skip? ? skipped_result : validation_result
24
+ end
25
+
26
+ def skipped_result
27
+ ::Avm::Result.neutral(SKIPPED_RESULT_MESSAGE)
28
+ end
29
+
30
+ def validation_result
31
+ parent.send("#{key}_result")
32
+ rescue ::RuntimeError => e
33
+ ::Avm::Result.error("error raised: #{e.message}")
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/git/issue/complete/validation'
4
+ require 'avm/result'
5
+ require 'ostruct'
6
+
7
+ module Avm
8
+ module Git
9
+ module Issue
10
+ class Complete
11
+ module Validations
12
+ VALIDATIONS = {
13
+ clean_workspace: 'Clean workspace?',
14
+ branch_name: 'Branch name',
15
+ branch_hash: 'Branch hash',
16
+ follow_master: 'Follow master?',
17
+ commits: 'Commits?',
18
+ bifurcations: 'Bifurcations?',
19
+ dry_push: 'Dry push?',
20
+ git_subrepos: 'Git subrepos ok?',
21
+ test: 'Test ok?'
22
+ }.with_indifferent_access.freeze
23
+
24
+ def valid?
25
+ validations.map(&:result).none?(&:error?)
26
+ end
27
+
28
+ def validations_banner
29
+ validations.each do |v|
30
+ infov "[#{v.key}] #{v.label}", v.result.label
31
+ end
32
+ end
33
+
34
+ def validate_skip_validations
35
+ skip_validations.each do |validation|
36
+ next if VALIDATIONS.keys.include?(validation)
37
+
38
+ raise "\"#{validation}\" is not a registered validation"
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def validations_uncached
45
+ VALIDATIONS.map do |key, label|
46
+ ::Avm::Git::Issue::Complete::Validation.new(self, key, label)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Issue
6
+ class Complete
7
+ module WorkingTree
8
+ def clean_workspace_result
9
+ ::Avm::Result.success_or_error(clean_workspace?, 'yes', 'no')
10
+ end
11
+
12
+ def clean_workspace?
13
+ launcher_git.dirty_files.none?
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'eac_git/local'
5
+
6
+ module Avm
7
+ module Git
8
+ module Issue
9
+ class Complete
10
+ require_sub __FILE__, include_modules: true
11
+ enable_simple_cache
12
+ enable_speaker
13
+
14
+ BRANCH_NAME_ISSUE_ID_PATTERN =
15
+
16
+ attr_reader :dir, :skip_validations
17
+
18
+ def initialize(options)
19
+ consumer = ::EacRubyUtils::OptionsConsumer.new(options)
20
+ @dir, @skip_validations = consumer.consume_all(:dir, :skip_validations)
21
+ validate_skip_validations
22
+ consumer.validate
23
+ end
24
+
25
+ def start_banner
26
+ validations_banner
27
+ end
28
+
29
+ def run
30
+ return false unless valid?
31
+
32
+ assert_tag
33
+ push
34
+ remove_local_branch
35
+ clipboard_copy_tracker_message
36
+ true
37
+ end
38
+
39
+ def issue_id
40
+ branch ? issue_id_parser.parse(branch_name) : nil
41
+ end
42
+
43
+ # @return [EacRubyUtils::RegexpParser]
44
+ def issue_id_parser
45
+ /\A#{Regexp.quote('issue_')}(\d+)\z/.to_parser { |m| m[1].to_i }
46
+ end
47
+
48
+ private
49
+
50
+ # @return [EacGit::Local]
51
+ def eac_git_uncached
52
+ ::EacGit::Local.new(dir)
53
+ end
54
+
55
+ def git_execute(args, exit_outputs = {})
56
+ r = launcher_git.execute!(args, exit_outputs: exit_outputs)
57
+ r.is_a?(String) ? r.strip : r
58
+ end
59
+
60
+ def launcher_git_uncached
61
+ ::Avm::Git::Launcher::Base.new(dir)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+ EacRubyUtils.require_sub(__FILE__)
5
+
6
+ module Avm
7
+ module Git
8
+ module Issue
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module Git
5
+ module Launcher
6
+ class Base < ::Avm::Launcher::Paths::Real
7
+ module ClassMethods
8
+ # @return [Avm::Git::Launcher::Base]
9
+ def by_root(search_base_path)
10
+ new(find_root(search_base_path).to_path)
11
+ end
12
+
13
+ # Searches the root path for the Git repository which includes +search_base_path+.
14
+ # @return [Pathname]
15
+ def find_root(search_base_path)
16
+ path = search_base_path.to_pathname.expand_path
17
+ loop do
18
+ return path if path.join('.git').exist?
19
+ raise "\".git\" not found for \"#{search_base_path}\"" if path.parent.root?
20
+
21
+ path = path.parent
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module Git
7
+ module Launcher
8
+ class Base < ::Avm::Launcher::Paths::Real
9
+ module DirtyFiles
10
+ delegate :dirty?, to: :eac_git
11
+
12
+ # @return [Array<Struct>]
13
+ def dirty_files
14
+ eac_git.dirty_files.map do |df|
15
+ df.to_h.merge(path: df.path.to_path, absolute_path: df.absolute_path.to_path)
16
+ .to_struct
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'avm/git/launcher/remote'
5
+
6
+ module Avm
7
+ module Git
8
+ module Launcher
9
+ class Base < ::Avm::Launcher::Paths::Real
10
+ module Remotes
11
+ # @return [Avm::Git::Launcher::Remote]
12
+ def remote(name)
13
+ ::Avm::Git::Launcher::Remote.new(self, name)
14
+ end
15
+
16
+ def remote_hashs(remote_name)
17
+ remote(remote_name).ls
18
+ end
19
+
20
+ def remote_exist?(remote_name)
21
+ remote(remote_name).exist?
22
+ end
23
+
24
+ def assert_remote_url(remote_name, url)
25
+ r = git.remote(remote_name)
26
+ if !r.url || r.url != url
27
+ r.remove if r.url
28
+ git.add_remote(remote_name, url)
29
+ end
30
+ r
31
+ end
32
+
33
+ def remote_branch_sha(remote_name, branch_name)
34
+ remote_hashs(remote_name)["refs/heads/#{branch_name}"]
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/object'
4
+
5
+ module Avm
6
+ module Git
7
+ module Launcher
8
+ class Base < ::Avm::Launcher::Paths::Real
9
+ module Subrepo
10
+ def subrepo_status(subrepo_path)
11
+ s = execute!('subrepo', 'status', subrepo_path.gsub(%r{\A/}, ''))
12
+ raise s.strip.to_s if s.include?('is not a subrepo')
13
+
14
+ r = subrepo_status_parse_output(s)
15
+ raise "Empty subrepo status for |#{s}|\n" unless r.any?
16
+
17
+ r
18
+ end
19
+
20
+ def subrepo_remote_url(subrepo_path)
21
+ h = subrepo_status(subrepo_path)
22
+ url = h['Remote URL']
23
+ return url if url.present?
24
+
25
+ raise "Remote URL is blank for subrepo \"#{subrepo_path}\" (Subrepo status: #{h})"
26
+ end
27
+
28
+ private
29
+
30
+ def subrepo_status_parse_output(output)
31
+ r = {}.with_indifferent_access
32
+ output.each_line do |l|
33
+ m = /\A([^\:]+):(.*)\z/.match(l.strip)
34
+ next unless m && m[2].present?
35
+
36
+ r[m[1].strip] = m[2].strip
37
+ end
38
+ r
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_git/executables'
4
+ require 'eac_ruby_utils/envs'
5
+ require 'git'
6
+ require 'avm/launcher/paths/real'
7
+
8
+ module Avm
9
+ module Git
10
+ module Launcher
11
+ class Base < ::Avm::Launcher::Paths::Real
12
+ module Underlying
13
+ def command(*args)
14
+ args, options = build_args(args)
15
+ r = ::EacGit::Executables.git.command(*args)
16
+ (options[:exit_outputs] || {}).each do |status_code, result|
17
+ r = r.status_result(status_code, result)
18
+ end
19
+ r
20
+ end
21
+
22
+ %w[execute execute! system system!].each do |exec_type|
23
+ define_method exec_type do |*args|
24
+ command(*args).send(exec_type)
25
+ rescue ::EacRubyUtils::Envs::ExecutionError
26
+ raise ::Avm::Git::Launcher::Error
27
+ end
28
+ end
29
+
30
+ def init
31
+ git
32
+ self
33
+ end
34
+
35
+ private
36
+
37
+ def build_args(args)
38
+ options = {}
39
+ if args.last.is_a?(Hash)
40
+ options = args.last
41
+ args.pop
42
+ end
43
+ args = args.first if args.first.is_a?(Array)
44
+ [['-C', self, '--no-pager'] + args, options]
45
+ end
46
+
47
+ def git_uncached
48
+ FileUtils.mkdir_p(self)
49
+ if File.exist?(subpath('.git'))
50
+ ::Git.open(self)
51
+ else
52
+ ::Git.init(self)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end