ehbrs-tools 0.21.0 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/exe/ehbrs +2 -2
  3. data/lib/ehbrs/core_ext.rb +4 -0
  4. data/lib/ehbrs/music/album.rb +2 -0
  5. data/{vendor/eac_cli/lib/eac_cli/patches/module.rb → lib/ehbrs/patches.rb} +1 -1
  6. data/lib/ehbrs/tools/runner.rb +21 -0
  7. data/lib/ehbrs/tools/runner/cooking_book.rb +32 -0
  8. data/lib/ehbrs/tools/runner/cooking_book/build.rb +52 -0
  9. data/lib/ehbrs/{runner/videos/series.rb → tools/runner/finances.rb} +4 -4
  10. data/lib/ehbrs/tools/runner/finances/bb_browser.rb +66 -0
  11. data/lib/ehbrs/tools/runner/fs.rb +18 -0
  12. data/lib/ehbrs/tools/runner/fs/selected.rb +81 -0
  13. data/lib/ehbrs/tools/runner/fs/used_space.rb +161 -0
  14. data/lib/ehbrs/tools/runner/google.rb +18 -0
  15. data/lib/ehbrs/tools/runner/google/translate.rb +89 -0
  16. data/lib/ehbrs/tools/runner/music.rb +18 -0
  17. data/lib/ehbrs/tools/runner/music/selected.rb +28 -0
  18. data/lib/ehbrs/tools/runner/self.rb +18 -0
  19. data/lib/ehbrs/tools/runner/self/test.rb +27 -0
  20. data/lib/ehbrs/tools/runner/telegram.rb +28 -0
  21. data/lib/ehbrs/tools/runner/telegram/send_message.rb +31 -0
  22. data/lib/ehbrs/tools/runner/vg.rb +18 -0
  23. data/lib/ehbrs/tools/runner/vg/ips.rb +134 -0
  24. data/lib/ehbrs/tools/runner/vg/wii.rb +74 -0
  25. data/lib/ehbrs/{runner/web_utils → tools/runner}/videos.rb +3 -3
  26. data/lib/ehbrs/tools/runner/videos/extract.rb +70 -0
  27. data/lib/ehbrs/tools/runner/videos/probe.rb +34 -0
  28. data/lib/ehbrs/tools/runner/videos/series.rb +20 -0
  29. data/lib/ehbrs/tools/runner/videos/series/rename.rb +74 -0
  30. data/lib/ehbrs/tools/runner/videos/unsupported.rb +61 -0
  31. data/lib/ehbrs/tools/runner/web_utils.rb +26 -0
  32. data/lib/ehbrs/tools/runner/web_utils/videos.rb +20 -0
  33. data/lib/ehbrs/tools/runner/web_utils/videos/download.rb +65 -0
  34. data/lib/ehbrs/tools/runner/web_utils/videos/upload.rb +77 -0
  35. data/lib/ehbrs/tools/version.rb +1 -1
  36. data/lib/ehbrs/vg/wii/game_file.rb +10 -0
  37. data/lib/ehbrs/videos/unsupported/check_support.rb +12 -8
  38. data/vendor/aranha-parsers/aranha-parsers.gemspec +2 -2
  39. data/vendor/aranha-parsers/lib/aranha/parsers/rspec.rb +11 -0
  40. data/vendor/aranha-parsers/lib/aranha/parsers/rspec/setup_include.rb +17 -0
  41. data/vendor/aranha-parsers/lib/aranha/parsers/{spec → rspec}/source_target_fixtures_example.rb +0 -0
  42. data/vendor/aranha-parsers/lib/aranha/parsers/source_address.rb +10 -8
  43. data/vendor/aranha-parsers/lib/aranha/parsers/version.rb +1 -1
  44. data/vendor/aranha-parsers/spec/lib/rubocop_check_spec.rb +1 -5
  45. data/vendor/aranha-parsers/spec/spec_helper.rb +2 -6
  46. data/vendor/aranha-selenium/aranha-selenium.gemspec +2 -2
  47. data/vendor/aranha-selenium/lib/aranha/selenium/version.rb +1 -1
  48. data/vendor/aranha-selenium/spec/rubocop_check_spec.rb +1 -5
  49. data/vendor/aranha-selenium/spec/spec_helper.rb +2 -98
  50. data/vendor/eac_cli/eac_cli.gemspec +3 -4
  51. data/vendor/eac_cli/lib/eac_cli/config.rb +18 -0
  52. data/vendor/eac_cli/lib/eac_cli/config/entry.rb +46 -0
  53. data/vendor/eac_cli/lib/eac_cli/config/entry/options.rb +57 -0
  54. data/vendor/eac_cli/lib/eac_cli/config/entry/undefined.rb +26 -0
  55. data/vendor/eac_cli/lib/eac_cli/definition/help_formatter.rb +3 -2
  56. data/vendor/eac_cli/lib/eac_cli/definition/positional_argument.rb +6 -1
  57. data/vendor/eac_cli/lib/eac_cli/old_configs.rb +0 -1
  58. data/vendor/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +2 -2
  59. data/vendor/eac_cli/lib/eac_cli/old_configs_bridge.rb +39 -0
  60. data/vendor/eac_cli/lib/eac_cli/runner.rb +0 -2
  61. data/vendor/eac_cli/lib/eac_cli/runner/after_class_methods.rb +20 -3
  62. data/vendor/eac_cli/lib/eac_cli/runner/instance_methods.rb +5 -1
  63. data/vendor/eac_cli/lib/eac_cli/runner_with/help.rb +9 -4
  64. data/vendor/eac_cli/lib/eac_cli/runner_with/help/builder.rb +73 -0
  65. data/vendor/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +56 -0
  66. data/vendor/eac_cli/lib/eac_cli/runner_with/subcommands.rb +6 -4
  67. data/vendor/eac_cli/lib/eac_cli/speaker.rb +15 -19
  68. data/vendor/eac_cli/lib/eac_cli/speaker/_constants.rb +1 -1
  69. data/vendor/eac_cli/lib/eac_cli/speaker/list.rb +1 -1
  70. data/vendor/eac_cli/lib/eac_cli/speaker/options.rb +38 -0
  71. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  72. data/vendor/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +1 -1
  73. data/vendor/eac_cli/spec/lib/eac_cli/runner_spec.rb +0 -1
  74. data/vendor/eac_cli/spec/lib/eac_cli/speaker_spec.rb +5 -9
  75. data/vendor/eac_cli/spec/rubocop_spec.rb +1 -1
  76. data/vendor/eac_cli/spec/spec_helper.rb +2 -101
  77. data/vendor/eac_config/Gemfile +5 -0
  78. data/vendor/eac_config/eac_config.gemspec +19 -0
  79. data/vendor/eac_config/lib/eac_config.rb +7 -0
  80. data/vendor/eac_config/lib/eac_config/entry.rb +49 -0
  81. data/vendor/eac_config/lib/eac_config/entry_path.rb +41 -0
  82. data/vendor/eac_config/lib/eac_config/envvars_node.rb +25 -0
  83. data/vendor/eac_config/lib/eac_config/envvars_node/entry.rb +54 -0
  84. data/vendor/eac_config/lib/eac_config/load_nodes_search.rb +39 -0
  85. data/vendor/eac_config/lib/eac_config/load_path.rb +28 -0
  86. data/vendor/eac_config/lib/eac_config/node.rb +67 -0
  87. data/vendor/eac_config/lib/eac_config/node_entry.rb +18 -0
  88. data/vendor/eac_config/lib/eac_config/node_uri.rb +38 -0
  89. data/vendor/eac_config/lib/eac_config/old_configs.rb +75 -0
  90. data/vendor/eac_config/lib/eac_config/old_configs/base.rb +43 -0
  91. data/vendor/eac_config/lib/eac_config/old_configs/file.rb +47 -0
  92. data/vendor/eac_config/lib/eac_config/paths_hash.rb +56 -0
  93. data/vendor/eac_config/lib/eac_config/paths_hash/entry_key_error.rb +8 -0
  94. data/vendor/eac_config/lib/eac_config/paths_hash/node.rb +67 -0
  95. data/vendor/eac_config/lib/eac_config/paths_hash/path_search.rb +39 -0
  96. data/vendor/eac_config/lib/eac_config/version.rb +5 -0
  97. data/vendor/eac_config/lib/eac_config/yaml_file_node.rb +48 -0
  98. data/vendor/eac_config/lib/eac_config/yaml_file_node/entry.rb +37 -0
  99. data/vendor/eac_config/spec/lib/eac_config/entry_path_spec.rb +30 -0
  100. data/vendor/eac_config/spec/lib/eac_config/envvars_node/entry_spec.rb +14 -0
  101. data/vendor/eac_config/spec/lib/eac_config/envvars_node_spec.rb +40 -0
  102. data/vendor/eac_config/spec/lib/eac_config/old_configs_spec.rb +46 -0
  103. data/vendor/eac_config/spec/lib/eac_config/paths_hash_spec.rb +88 -0
  104. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec.rb +52 -0
  105. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1.yaml +6 -0
  106. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_1.yaml +2 -0
  107. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2.yaml +4 -0
  108. data/vendor/eac_config/spec/lib/eac_config/yaml_file_node_spec_files/storage1_2/storage1_2_1.yaml +2 -0
  109. data/vendor/eac_config/spec/rubocop_spec.rb +3 -0
  110. data/vendor/eac_config/spec/spec_helper.rb +4 -0
  111. data/vendor/eac_docker/eac_docker.gemspec +2 -2
  112. data/vendor/eac_docker/lib/eac_docker/container.rb +7 -3
  113. data/vendor/eac_docker/lib/eac_docker/debug.rb +15 -0
  114. data/vendor/eac_docker/lib/eac_docker/images/coded.rb +4 -0
  115. data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +16 -2
  116. data/vendor/eac_docker/lib/eac_docker/rspec.rb +2 -10
  117. data/vendor/eac_docker/lib/eac_docker/rspec/setup_include.rb +23 -0
  118. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  119. data/vendor/eac_docker/spec/rubocop_spec.rb +1 -1
  120. data/vendor/eac_docker/spec/spec_helper.rb +2 -104
  121. data/vendor/eac_ruby_base0/eac_ruby_base0.gemspec +4 -4
  122. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application.rb +23 -9
  123. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +34 -0
  124. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +2 -2
  125. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +19 -7
  126. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/runner_with/confirmation.rb +8 -1
  127. data/vendor/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  128. data/vendor/eac_ruby_base0/spec/rubocop_spec.rb +1 -1
  129. data/vendor/eac_ruby_base0/spec/spec_helper.rb +2 -101
  130. data/vendor/eac_ruby_utils/eac_ruby_utils.gemspec +1 -1
  131. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +1 -1
  132. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/context.rb +31 -0
  133. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +12 -7
  134. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +15 -3
  135. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb +36 -0
  136. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb +39 -0
  137. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +11 -0
  138. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +9 -0
  139. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +11 -0
  140. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/default_setup.rb +18 -0
  141. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +45 -0
  142. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +10 -2
  143. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +16 -0
  144. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +57 -0
  145. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +32 -0
  146. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  147. data/vendor/{eac_cli/spec/lib → eac_ruby_utils/spec/lib/eac_ruby_utils/patches}/module/speaker_spec.rb +2 -2
  148. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +33 -0
  149. data/vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +18 -0
  150. data/vendor/eac_ruby_utils/spec/rubocop_check_spec.rb +1 -1
  151. data/vendor/eac_ruby_utils/spec/spec_helper.rb +6 -6
  152. data/vendor/ehbrs_ruby_utils/ehbrs_ruby_utils.gemspec +4 -2
  153. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/finances/bb_browser/docker_image.rb +18 -0
  154. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/patches/object/template.rb +6 -0
  155. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/version.rb +1 -1
  156. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/videos/stream.rb +11 -1
  157. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec.rb +13 -0
  158. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.source.yaml +28 -0
  159. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.target.yaml +7 -0
  160. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.source.yaml +49 -0
  161. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.target.yaml +7 -0
  162. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.source.yaml +43 -0
  163. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.target.yaml +7 -0
  164. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.source.yaml +59 -0
  165. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.target.yaml +7 -0
  166. data/vendor/ehbrs_ruby_utils/spec/rubocop_check_spec.rb +1 -5
  167. data/vendor/ehbrs_ruby_utils/spec/spec_helper.rb +2 -98
  168. data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/finances/bb_browser/docker_image/Dockerfile +44 -0
  169. data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/finances/bb_browser/docker_image/Makefile +35 -0
  170. data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/finances/bb_browser/docker_image/README.md +16 -0
  171. data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/finances/bb_browser/docker_image/context/firefox.service +8 -0
  172. data/vendor/ehbrs_ruby_utils/template/ehbrs_ruby_utils/finances/bb_browser/docker_image/context/startbrowser.sh +9 -0
  173. metadata +115 -52
  174. data/lib/ehbrs/runner.rb +0 -19
  175. data/lib/ehbrs/runner/cooking_book.rb +0 -30
  176. data/lib/ehbrs/runner/cooking_book/build.rb +0 -50
  177. data/lib/ehbrs/runner/finances.rb +0 -16
  178. data/lib/ehbrs/runner/finances/bb_browser.rb +0 -35
  179. data/lib/ehbrs/runner/fs.rb +0 -16
  180. data/lib/ehbrs/runner/fs/used_space.rb +0 -160
  181. data/lib/ehbrs/runner/google.rb +0 -16
  182. data/lib/ehbrs/runner/google/translate.rb +0 -87
  183. data/lib/ehbrs/runner/music.rb +0 -16
  184. data/lib/ehbrs/runner/music/selected.rb +0 -63
  185. data/lib/ehbrs/runner/self.rb +0 -16
  186. data/lib/ehbrs/runner/self/test.rb +0 -25
  187. data/lib/ehbrs/runner/telegram.rb +0 -26
  188. data/lib/ehbrs/runner/telegram/send_message.rb +0 -29
  189. data/lib/ehbrs/runner/vg.rb +0 -16
  190. data/lib/ehbrs/runner/vg/ips.rb +0 -132
  191. data/lib/ehbrs/runner/vg/wii.rb +0 -72
  192. data/lib/ehbrs/runner/videos.rb +0 -16
  193. data/lib/ehbrs/runner/videos/extract.rb +0 -68
  194. data/lib/ehbrs/runner/videos/probe.rb +0 -32
  195. data/lib/ehbrs/runner/videos/series/rename.rb +0 -72
  196. data/lib/ehbrs/runner/videos/unsupported.rb +0 -59
  197. data/lib/ehbrs/runner/web_utils.rb +0 -24
  198. data/lib/ehbrs/runner/web_utils/videos/download.rb +0 -63
  199. data/lib/ehbrs/runner/web_utils/videos/upload.rb +0 -75
  200. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder.rb +0 -71
  201. data/vendor/eac_cli/lib/eac_cli/docopt/doc_builder/alternative.rb +0 -50
  202. data/vendor/eac_cli/lib/eac_cli/docopt/runner_context_replacement.rb +0 -15
  203. data/vendor/eac_cli/lib/eac_cli/docopt/runner_extension.rb +0 -51
  204. data/vendor/eac_cli/lib/eac_cli/docopt_runner.rb +0 -43
  205. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_class_methods.rb +0 -16
  206. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_doc.rb +0 -23
  207. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_settings.rb +0 -17
  208. data/vendor/eac_cli/lib/eac_cli/docopt_runner/_subcommands.rb +0 -152
  209. data/vendor/eac_cli/lib/eac_cli/patches/module/speaker.rb +0 -10
  210. data/vendor/eac_cli/lib/eac_cli/speaker/_class_methods.rb +0 -37
  211. data/vendor/eac_cli/lib/eac_cli/speaker/node.rb +0 -24
  212. data/vendor/eac_cli/spec/lib/eac_cli/docopt/runner_extension_spec.rb +0 -35
  213. data/vendor/eac_cli/spec/lib/eac_cli/docopt_runner_spec.rb +0 -136
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ea7376b27f5582e0f1c154f3a218de64c6bb27c0d0c9109b6194c2ad1dc779b
4
- data.tar.gz: d7916decd5768e2008e43313669bfd9d605662fb95d13c7fa64d33581b86afac
3
+ metadata.gz: dbfa70bd079e79c23dd182fca2f0183300fbd9dc14353b36fce775212a00dd22
4
+ data.tar.gz: 951a03991227e106898cfe9b3fced882c5e5c02232d74d10431a3fb69180e807
5
5
  SHA512:
6
- metadata.gz: 6798766e6cfbe66142f7ab0100016ddcf34744a2fd8c12e021d00a67d068310fa7e901521daba98a72a9c8bd6c85a9bd5bc7afb0270b4bdf99b646c354e553f1
7
- data.tar.gz: 6ea855740d28d2676f9723cfe86f8ba3c12e29fb5ceda65ec068d3857172ff07d79df72df76332079afdec79f2725cb752179cc35f659c426485d59068e792eb
6
+ metadata.gz: c3aa2218cbbfe65e71c9de03b9d8413475c2292013de2820d9e10fbd020df45d78c1f5a1408cbd6deb5bbb9bf8e5553891579ce36657bfbff2c4cb4225878562
7
+ data.tar.gz: 70b9939f9efcd0637e6ba3b8bc5049466a37ce9d03f455f25716876c1e7b59ff38823e394a524fb6399e47d6d1bf3761b8ebdb8e971978ba7503d0999abe049f
data/exe/ehbrs CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  $LOAD_PATH.unshift("#{__dir__}/../lib")
5
- require 'ehbrs/runner'
6
- ::Ehbrs::Runner.run
5
+ require 'ehbrs/tools/runner'
6
+ ::Ehbrs::Tools::Runner.run
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ehbrs/patches'
4
+ require 'eac_ruby_base0/core_ext'
@@ -22,6 +22,8 @@ module Ehbrs
22
22
  (to_a + [id]).map(&:light_white).join(' | '.blue)
23
23
  end
24
24
 
25
+ delegate :to_path, to: :path
26
+
25
27
  def id
26
28
  [artist, name].join('_').variableize
27
29
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/require_sub'
4
- ::EacRubyUtils.require_sub(__FILE__)
4
+ ::EacRubyUtils.require_sub __FILE__
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base0/runner'
4
+ require 'ehbrs/tools/application'
5
+
6
+ module Ehbrs
7
+ module Tools
8
+ class Runner
9
+ require_sub __FILE__
10
+ include ::EacRubyBase0::Runner
11
+
12
+ runner_definition do
13
+ desc 'Tools for EHB/RS.'
14
+ end
15
+
16
+ def application
17
+ ::Ehbrs::Tools.application
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/cooking_book/project'
5
+
6
+ module Ehbrs
7
+ module Tools
8
+ class Runner
9
+ class CookingBook
10
+ require_sub __FILE__
11
+
12
+ DEFAULT_SOURCE_DIR = '.'
13
+
14
+ runner_with :help, :subcommands do
15
+ desc 'Operações para livros de receitas.'
16
+ arg_opt '-C', '--source-dir', 'Caminho para o diretório do código-fonte.'
17
+ subcommands
18
+ end
19
+
20
+ private
21
+
22
+ def source_dir_uncached
23
+ (parsed.source_dir || DEFAULT_SOURCE_DIR).to_pathname.expand_path
24
+ end
25
+
26
+ def project_uncached
27
+ ::Ehbrs::CookingBook::Project.new(source_dir)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/cooking_book/build'
5
+ require 'os'
6
+
7
+ module Ehbrs
8
+ module Tools
9
+ class Runner
10
+ class CookingBook
11
+ class Build
12
+ runner_with :help, :subcommands do
13
+ desc 'Operações para livros de receitas.'
14
+ arg_opt '-d', '--target-dir', 'Caminho para o diretório destino da construção.'
15
+ bool_opt '--open', 'Show the result.'
16
+ end
17
+
18
+ def run
19
+ start_banner
20
+ build.run
21
+ open
22
+ success 'Done'
23
+ end
24
+
25
+ private
26
+
27
+ def build_uncached
28
+ ::Ehbrs::CookingBook::Build.new(
29
+ runner_context.call(:project), target_dir: parsed.target_dir
30
+ )
31
+ end
32
+
33
+ def open
34
+ return unless parsed.open?
35
+
36
+ infom "Opening \"#{open_path}\"..."
37
+ ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
38
+ end
39
+
40
+ def open_path
41
+ build.index_page.target_path
42
+ end
43
+
44
+ def start_banner
45
+ infov 'Project', build.project
46
+ infov 'Target directory', build.target_dir
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -3,13 +3,13 @@
3
3
  require 'eac_cli/core_ext'
4
4
 
5
5
  module Ehbrs
6
- class Runner
7
- class Videos
8
- class Series
6
+ module Tools
7
+ class Runner
8
+ class Finances
9
9
  require_sub __FILE__
10
10
 
11
11
  runner_with :help, :subcommands do
12
- desc 'Ferramentas para seriados.'
12
+ desc 'Utilidades financeiras.'
13
13
  subcommands
14
14
  end
15
15
  end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ehbrs/core_ext'
4
+ require 'ehbrs_ruby_utils/finances/bb_browser/docker_image'
5
+
6
+ module Ehbrs
7
+ module Tools
8
+ class Runner
9
+ class Finances
10
+ class BbBrowser
11
+ runner_with :help do
12
+ desc 'Bankline para Banco do Brasil com módulo de segurança.'
13
+ end
14
+
15
+ def run
16
+ infov 'Docker run arguments', ::Shellwords.join(docker_container.run_command_args)
17
+ infov 'System result', docker_container.run_command.system
18
+ end
19
+
20
+ private
21
+
22
+ def docker_image_uncached
23
+ ::EhbrsRubyUtils::Finances::BbBrowser::DockerImage.create
24
+ end
25
+
26
+ def docker_container_uncached
27
+ r = docker_image.container
28
+ .temporary(true).interactive(true).tty(true)
29
+ .command_arg('seg.bb.com.br')
30
+ %w[capabilities environment_variables volumes].inject(r) do |a, e|
31
+ send("docker_container_#{e}", a)
32
+ end
33
+ end
34
+
35
+ def docker_container_capabilities(container)
36
+ %w[CAP_AUDIT_WRITE CAP_SYS_PTRACE].inject(container) { |a, e| a.capability(e) }
37
+ end
38
+
39
+ def docker_container_environment_variables(container)
40
+ {
41
+ 'USER_UID' => user_id,
42
+ 'USER_GID' => group_id
43
+ }.inject(container) { |a, e| a.env(e[0], e[1]) }
44
+ end
45
+
46
+ def docker_container_volumes(container)
47
+ {
48
+ ::File.join(ENV.fetch('HOME'), 'Downloads') => '/home/user/Downloads',
49
+ ::File.join(ENV.fetch('HOME'), '.Xauthority') => '/home/user/.Xauthority:ro',
50
+ '/tmp/.X11-unix' => '/tmp/.X11-unix:ro',
51
+ '/etc/machine-id' => '/etc/machine-id:ro'
52
+ }.inject(container) { |a, e| a.volume(e[0], e[1]) }
53
+ end
54
+
55
+ def user_id
56
+ ::EacRubyUtils::Envs.local.command('id', '-u').execute!.strip
57
+ end
58
+
59
+ def group_id
60
+ ::EacRubyUtils::Envs.local.command('id', '-g').execute!.strip
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Ehbrs
6
+ module Tools
7
+ class Runner
8
+ class Fs
9
+ require_sub __FILE__
10
+
11
+ runner_with :help, :subcommands do
12
+ desc 'Ferramentas para o sistema de arquivos.'
13
+ subcommands
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/envs'
4
+ require 'eac_ruby_utils/fs/clearable_directory'
5
+ require 'ehbrs/core_ext'
6
+
7
+ module Ehbrs
8
+ module Tools
9
+ class Runner
10
+ class Fs
11
+ class Selected
12
+ DEFAULT_TRAVERSER_RECURSIVE = true
13
+
14
+ enable_jobs_runner
15
+ runner_with :confirmation, :help, :filesystem_traverser do
16
+ desc 'Seleciona diretórios.'
17
+ arg_opt '-b', '--build-dir', 'Constrói diretório alvo.'
18
+ end
19
+
20
+ def run
21
+ infov 'Recursive', traverser_recursive
22
+ run_jobs :show, :build
23
+ end
24
+
25
+ protected
26
+
27
+ def build_selected_directory(path)
28
+ path
29
+ end
30
+
31
+ def directory_label(directory)
32
+ directory.to_s
33
+ end
34
+
35
+ def directory_target_basename(directory)
36
+ directory.basename.to_path
37
+ end
38
+
39
+ private
40
+
41
+ def build
42
+ infom "Building directory \"#{build_dir}\" with selected..."
43
+ build_dir.clear
44
+ selected_directories.each do |directory|
45
+ ::EacRubyUtils::Envs.local.command(
46
+ 'ln', '-s', directory.to_path,
47
+ build_dir.join(directory_target_basename(directory))
48
+ ).system!
49
+ end
50
+ end
51
+
52
+ def build_dir_uncached
53
+ parsed.build_dir.if_present { |v| ::EacRubyUtils::Fs::ClearableDirectory.new(v) }
54
+ end
55
+
56
+ def run_build?
57
+ build_dir.present? && confirm?('Build?')
58
+ end
59
+
60
+ def selected_directories_uncached
61
+ infom 'Searching selected directories...'
62
+ @selected = []
63
+ run_filesystem_traverser
64
+ @selected.sort
65
+ end
66
+
67
+ def show
68
+ infov 'Directories found', selected_directories.count
69
+ selected_directories.each do |directory|
70
+ puts directory_label(directory)
71
+ end
72
+ end
73
+
74
+ def traverser_check_directory(path)
75
+ @selected << build_selected_directory(path) if path.join('.selected').exist?
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/self/observers/used_space'
5
+ require 'filesize'
6
+
7
+ module Ehbrs
8
+ module Tools
9
+ class Runner
10
+ class Fs
11
+ class UsedSpace
12
+ runner_with :help do
13
+ desc 'Verifica e anota alterações de espaço usado de um objeto de sistema de arquivos.'
14
+ bool_opt '-c', '--check', 'Anota o espaço em disco.'
15
+ bool_opt '-v', '--verbose', 'Verbose.'
16
+ pos_arg :paths, repeat: true
17
+ end
18
+
19
+ def run
20
+ root_banner
21
+ paths.each(&:run)
22
+ end
23
+
24
+ def check?
25
+ parsed.check
26
+ end
27
+
28
+ private
29
+
30
+ def root_banner
31
+ return unless verbose?
32
+
33
+ infov 'Paths', paths.count
34
+ infov 'Check?', check?
35
+ infov 'Verbose?', verbose?
36
+ end
37
+
38
+ def path_class
39
+ verbose? ? PathVerbose : PathUnverbose
40
+ end
41
+
42
+ def paths_uncached
43
+ parsed.paths.map { |path| path_class.new(self, path) }
44
+ end
45
+
46
+ def verbose?
47
+ parsed.verbose
48
+ end
49
+
50
+ class PathBase
51
+ enable_simple_cache
52
+ enable_speaker
53
+ common_constructor :runner, :path do
54
+ self.path = path.to_pathname
55
+ end
56
+
57
+ private
58
+
59
+ def last_change_time
60
+ time_label(observer.observer.last_change_time)
61
+ end
62
+
63
+ def last_check
64
+ time_label(observer.observer.last_check_time)
65
+ end
66
+
67
+ def last_value
68
+ bytes_label(observer.observer.last_value)
69
+ end
70
+
71
+ def current_value
72
+ bytes_label(observer.current_value).colorize(
73
+ observer.changing_value? ? :green : :light_black
74
+ )
75
+ end
76
+
77
+ def changing_value?
78
+ changing_label(observer.changing_value?)
79
+ end
80
+
81
+ def observer_uncached
82
+ ::Ehbrs::Self::Observers::UsedSpace.new(path)
83
+ end
84
+
85
+ def changing_label(bool)
86
+ bool.to_s.colorize(bool ? :green : :light_black)
87
+ end
88
+
89
+ def time_label(time)
90
+ time.if_present('-', &:to_s)
91
+ end
92
+ end
93
+
94
+ class PathVerbose < PathBase
95
+ def run
96
+ infom path.to_s
97
+ ::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new(err_line_prefix: ' ')) do
98
+ banner
99
+ check
100
+ end
101
+ end
102
+
103
+ private
104
+
105
+ def banner
106
+ { 'Path' => observer.path,
107
+ 'Persistence path' => observer.persistence_path,
108
+ 'Last check' => last_check,
109
+ 'Last change' => last_change_time,
110
+ 'Last value' => last_value,
111
+ 'Current value' => current_value,
112
+ 'Changing?' => changing_value? }.each do |k, v|
113
+ infov k, v
114
+ end
115
+ end
116
+
117
+ def check
118
+ return unless runner.check?
119
+
120
+ infom 'Checking...'
121
+ if observer.check_current_value
122
+ success 'A new value was recorded'
123
+ else
124
+ info 'No new value was recorded'
125
+ end
126
+ end
127
+
128
+ def bytes_label(number)
129
+ number.if_present('-') { |v| "#{v} (#{::Filesize.from("#{v} B").pretty})" }
130
+ end
131
+ end
132
+
133
+ class PathUnverbose < PathBase
134
+ def run
135
+ self.puts output_line
136
+ end
137
+
138
+ def output_line
139
+ [path.to_s.cyan, last_change_time, last_value, current_value, check_result]
140
+ .reject(&:blank?).join('|')
141
+ end
142
+
143
+ def check_result
144
+ return nil unless runner.check?
145
+
146
+ observer.check_current_value ? 'Recorded'.green : 'Unchanged'.light_black
147
+ end
148
+
149
+ def bytes_label(number)
150
+ number.if_present('-') { |v| ::Filesize.from("#{v} B").pretty }
151
+ end
152
+
153
+ def time_label(time)
154
+ time.if_present('-') { |t| t.strftime('%d/%m/%y %H:%M') }
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end