ehbrs-tools 0.23.0 → 0.23.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/exe/ehbrs +2 -2
  3. data/lib/ehbrs/tools/runner.rb +21 -0
  4. data/lib/ehbrs/tools/runner/cooking_book.rb +32 -0
  5. data/lib/ehbrs/tools/runner/cooking_book/build.rb +52 -0
  6. data/lib/ehbrs/{runner/videos/series.rb → tools/runner/finances.rb} +4 -4
  7. data/lib/ehbrs/tools/runner/finances/bb_browser.rb +37 -0
  8. data/lib/ehbrs/tools/runner/fs.rb +18 -0
  9. data/lib/ehbrs/tools/runner/fs/selected.rb +81 -0
  10. data/lib/ehbrs/tools/runner/fs/used_space.rb +161 -0
  11. data/lib/ehbrs/tools/runner/google.rb +18 -0
  12. data/lib/ehbrs/tools/runner/google/translate.rb +89 -0
  13. data/lib/ehbrs/tools/runner/music.rb +18 -0
  14. data/lib/ehbrs/tools/runner/music/selected.rb +28 -0
  15. data/lib/ehbrs/tools/runner/self.rb +18 -0
  16. data/lib/ehbrs/tools/runner/self/test.rb +27 -0
  17. data/lib/ehbrs/tools/runner/telegram.rb +28 -0
  18. data/lib/ehbrs/tools/runner/telegram/send_message.rb +31 -0
  19. data/lib/ehbrs/tools/runner/vg.rb +18 -0
  20. data/lib/ehbrs/tools/runner/vg/ips.rb +134 -0
  21. data/lib/ehbrs/tools/runner/vg/wii.rb +74 -0
  22. data/lib/ehbrs/{runner/web_utils → tools/runner}/videos.rb +3 -3
  23. data/lib/ehbrs/tools/runner/videos/extract.rb +70 -0
  24. data/lib/ehbrs/tools/runner/videos/probe.rb +34 -0
  25. data/lib/ehbrs/tools/runner/videos/series.rb +20 -0
  26. data/lib/ehbrs/tools/runner/videos/series/rename.rb +74 -0
  27. data/lib/ehbrs/tools/runner/videos/unsupported.rb +61 -0
  28. data/lib/ehbrs/tools/runner/web_utils.rb +26 -0
  29. data/lib/ehbrs/tools/runner/web_utils/videos.rb +20 -0
  30. data/lib/ehbrs/tools/runner/web_utils/videos/download.rb +65 -0
  31. data/lib/ehbrs/tools/runner/web_utils/videos/upload.rb +77 -0
  32. data/lib/ehbrs/tools/version.rb +1 -1
  33. data/vendor/aranha-parsers/lib/aranha/parsers/source_address.rb +10 -8
  34. data/vendor/aranha-parsers/lib/aranha/parsers/version.rb +1 -1
  35. data/vendor/eac_docker/eac_docker.gemspec +1 -1
  36. data/vendor/eac_docker/lib/eac_docker/debug.rb +15 -0
  37. data/vendor/eac_docker/lib/eac_docker/images/coded.rb +4 -0
  38. data/vendor/eac_docker/lib/eac_docker/images/templatized.rb +12 -2
  39. data/vendor/eac_docker/lib/eac_docker/version.rb +1 -1
  40. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +1 -1
  41. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  42. data/vendor/ehbrs_ruby_utils/ehbrs_ruby_utils.gemspec +3 -2
  43. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/version.rb +1 -1
  44. data/vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/videos/stream.rb +11 -1
  45. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec.rb +14 -0
  46. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.source.yaml +28 -0
  47. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.target.yaml +7 -0
  48. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.source.yaml +49 -0
  49. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.target.yaml +7 -0
  50. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.source.yaml +43 -0
  51. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.target.yaml +7 -0
  52. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.source.yaml +59 -0
  53. data/vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.target.yaml +7 -0
  54. data/vendor/ehbrs_ruby_utils/spec/rubocop_check_spec.rb +1 -5
  55. data/vendor/ehbrs_ruby_utils/spec/spec_helper.rb +3 -0
  56. metadata +42 -32
  57. data/lib/ehbrs/runner.rb +0 -19
  58. data/lib/ehbrs/runner/cooking_book.rb +0 -30
  59. data/lib/ehbrs/runner/cooking_book/build.rb +0 -50
  60. data/lib/ehbrs/runner/finances.rb +0 -16
  61. data/lib/ehbrs/runner/finances/bb_browser.rb +0 -35
  62. data/lib/ehbrs/runner/fs.rb +0 -16
  63. data/lib/ehbrs/runner/fs/selected.rb +0 -79
  64. data/lib/ehbrs/runner/fs/used_space.rb +0 -159
  65. data/lib/ehbrs/runner/google.rb +0 -16
  66. data/lib/ehbrs/runner/google/translate.rb +0 -87
  67. data/lib/ehbrs/runner/music.rb +0 -16
  68. data/lib/ehbrs/runner/music/selected.rb +0 -26
  69. data/lib/ehbrs/runner/self.rb +0 -16
  70. data/lib/ehbrs/runner/self/test.rb +0 -25
  71. data/lib/ehbrs/runner/telegram.rb +0 -26
  72. data/lib/ehbrs/runner/telegram/send_message.rb +0 -29
  73. data/lib/ehbrs/runner/vg.rb +0 -16
  74. data/lib/ehbrs/runner/vg/ips.rb +0 -132
  75. data/lib/ehbrs/runner/vg/wii.rb +0 -72
  76. data/lib/ehbrs/runner/videos.rb +0 -16
  77. data/lib/ehbrs/runner/videos/extract.rb +0 -68
  78. data/lib/ehbrs/runner/videos/probe.rb +0 -32
  79. data/lib/ehbrs/runner/videos/series/rename.rb +0 -72
  80. data/lib/ehbrs/runner/videos/unsupported.rb +0 -59
  81. data/lib/ehbrs/runner/web_utils.rb +0 -24
  82. data/lib/ehbrs/runner/web_utils/videos/download.rb +0 -63
  83. data/lib/ehbrs/runner/web_utils/videos/upload.rb +0 -75
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24cc95cbb19d48d47c3cf2447d31a2666e5bff47ba87e6e2b0943203f9324cd6
4
- data.tar.gz: 6d95e2625e2ed87691d8ecd13118a7da6c7108bb7a0e4fe900ffc96d7b6d2a51
3
+ metadata.gz: 429a63c4ba2d38ccc0c997ca4abd9a224fe7cb37de219390f9bbbab15adc9698
4
+ data.tar.gz: 6b23e3bab5b16c34fa33f78d0f1c2ad122826d83cc60c92890d815a187738b1f
5
5
  SHA512:
6
- metadata.gz: ce667b62bb9d70459867f6033acb75086631f8e264e5d1099ecb22d0f96e625239b7c98d660d47fe429b8ebfb9fe7c4210549a2726074ff0f0e4c8765946add8
7
- data.tar.gz: 71a83d8127ae744dfd57c84061911280eeffba34170c484f90bfbdc0b44a6b16a4b200d762e5c573391e6e027e1c35a573a1186f34c357a004a6a95fc859b7dc
6
+ metadata.gz: d12489f3f71db60bf4c39b6e4d705165e5b89d2b0a1bf17f13c2a20b9580c4e994f3eaba68bb736ace35d141632d7d8acf2700020b8d04cf9d34f3293fa2eb4d
7
+ data.tar.gz: 74b605f93c3f8832aea0ba7871ff580a83955cf385d9cb3aed6c90a3d96b6745fefc3a7b02dc1850c3599bd8ae263c3b324c9c7caf68b25d9c646168e40f3f2a
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,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,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'ehbrs/videos/extract/package'
5
+ require 'eac_docker/images/named'
6
+
7
+ module Ehbrs
8
+ module Tools
9
+ class Runner
10
+ class Finances
11
+ class BbBrowser
12
+ runner_with :help do
13
+ desc 'Bankline para Banco do Brasil com módulo de segurança.'
14
+ end
15
+
16
+ def run
17
+ infov 'Docker run arguments', docker_container.run_command_args
18
+ infov 'System result', docker_container.run_command.system
19
+ end
20
+
21
+ private
22
+
23
+ def docker_image_uncached
24
+ ::EacDocker::Images::Named.new('lichti/warsaw-browser')
25
+ end
26
+
27
+ def docker_container_uncached
28
+ docker_image.container.env('DISPLAY', "unix#{ENV.fetch('DISPLAY')}")
29
+ .volume(::File.join(ENV['HOME'], 'Downloads'), '/home/bank/Downloads')
30
+ .volume('/tmp/.X11-unix', '/tmp/.X11-unix').command_arg('bb')
31
+ .temporary(true).interactive(true).tty(true)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ 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