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
@@ -0,0 +1,7 @@
1
+ ---
2
+ :codec_long_name: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
3
+ :codec_name: h264
4
+ :codec_type: :video
5
+ :index: 17
6
+ :language: eng
7
+ :title: "[AnimeRG] Tenshi No Tamago [1080p] [ScavvyKiD]"
@@ -1,7 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_gem_support/spec/examples/rubocop_check'
4
-
5
- RSpec.describe ::RuboCop do
6
- include_examples 'rubocop_check', ::File.expand_path('..', __dir__)
7
- end
3
+ ::EacRubyGemSupport::Rspec.default.describe_rubocop
@@ -16,6 +16,9 @@
16
16
  #
17
17
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
18
18
  RSpec.configure do |config|
19
+ require 'eac_ruby_gem_support/rspec'
20
+ ::EacRubyGemSupport::Rspec.setup(::File.expand_path('..', __dir__), config)
21
+
19
22
  # rspec-expectations config goes here. You can use an alternate
20
23
  # assertion/expectation library such as wrong or the stdlib/minitest
21
24
  # assertions if you prefer.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehbrs-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.23.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-16 00:00:00.000000000 Z
11
+ date: 2021-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm-tools
@@ -171,35 +171,6 @@ files:
171
171
  - lib/ehbrs/patches/module/erb_template.rb
172
172
  - lib/ehbrs/patches/object/erb_template.rb
173
173
  - lib/ehbrs/patches/object/template.rb
174
- - lib/ehbrs/runner.rb
175
- - lib/ehbrs/runner/cooking_book.rb
176
- - lib/ehbrs/runner/cooking_book/build.rb
177
- - lib/ehbrs/runner/finances.rb
178
- - lib/ehbrs/runner/finances/bb_browser.rb
179
- - lib/ehbrs/runner/fs.rb
180
- - lib/ehbrs/runner/fs/selected.rb
181
- - lib/ehbrs/runner/fs/used_space.rb
182
- - lib/ehbrs/runner/google.rb
183
- - lib/ehbrs/runner/google/translate.rb
184
- - lib/ehbrs/runner/music.rb
185
- - lib/ehbrs/runner/music/selected.rb
186
- - lib/ehbrs/runner/self.rb
187
- - lib/ehbrs/runner/self/test.rb
188
- - lib/ehbrs/runner/telegram.rb
189
- - lib/ehbrs/runner/telegram/send_message.rb
190
- - lib/ehbrs/runner/vg.rb
191
- - lib/ehbrs/runner/vg/ips.rb
192
- - lib/ehbrs/runner/vg/wii.rb
193
- - lib/ehbrs/runner/videos.rb
194
- - lib/ehbrs/runner/videos/extract.rb
195
- - lib/ehbrs/runner/videos/probe.rb
196
- - lib/ehbrs/runner/videos/series.rb
197
- - lib/ehbrs/runner/videos/series/rename.rb
198
- - lib/ehbrs/runner/videos/unsupported.rb
199
- - lib/ehbrs/runner/web_utils.rb
200
- - lib/ehbrs/runner/web_utils/videos.rb
201
- - lib/ehbrs/runner/web_utils/videos/download.rb
202
- - lib/ehbrs/runner/web_utils/videos/upload.rb
203
174
  - lib/ehbrs/self.rb
204
175
  - lib/ehbrs/self/observers/used_space.rb
205
176
  - lib/ehbrs/self/observers/with_persistence.rb
@@ -208,6 +179,35 @@ files:
208
179
  - lib/ehbrs/tools.rb
209
180
  - lib/ehbrs/tools/application.rb
210
181
  - lib/ehbrs/tools/instance.rb
182
+ - lib/ehbrs/tools/runner.rb
183
+ - lib/ehbrs/tools/runner/cooking_book.rb
184
+ - lib/ehbrs/tools/runner/cooking_book/build.rb
185
+ - lib/ehbrs/tools/runner/finances.rb
186
+ - lib/ehbrs/tools/runner/finances/bb_browser.rb
187
+ - lib/ehbrs/tools/runner/fs.rb
188
+ - lib/ehbrs/tools/runner/fs/selected.rb
189
+ - lib/ehbrs/tools/runner/fs/used_space.rb
190
+ - lib/ehbrs/tools/runner/google.rb
191
+ - lib/ehbrs/tools/runner/google/translate.rb
192
+ - lib/ehbrs/tools/runner/music.rb
193
+ - lib/ehbrs/tools/runner/music/selected.rb
194
+ - lib/ehbrs/tools/runner/self.rb
195
+ - lib/ehbrs/tools/runner/self/test.rb
196
+ - lib/ehbrs/tools/runner/telegram.rb
197
+ - lib/ehbrs/tools/runner/telegram/send_message.rb
198
+ - lib/ehbrs/tools/runner/vg.rb
199
+ - lib/ehbrs/tools/runner/vg/ips.rb
200
+ - lib/ehbrs/tools/runner/vg/wii.rb
201
+ - lib/ehbrs/tools/runner/videos.rb
202
+ - lib/ehbrs/tools/runner/videos/extract.rb
203
+ - lib/ehbrs/tools/runner/videos/probe.rb
204
+ - lib/ehbrs/tools/runner/videos/series.rb
205
+ - lib/ehbrs/tools/runner/videos/series/rename.rb
206
+ - lib/ehbrs/tools/runner/videos/unsupported.rb
207
+ - lib/ehbrs/tools/runner/web_utils.rb
208
+ - lib/ehbrs/tools/runner/web_utils/videos.rb
209
+ - lib/ehbrs/tools/runner/web_utils/videos/download.rb
210
+ - lib/ehbrs/tools/runner/web_utils/videos/upload.rb
211
211
  - lib/ehbrs/tools/version.rb
212
212
  - lib/ehbrs/user_dirs.rb
213
213
  - lib/ehbrs/vg.rb
@@ -407,6 +407,7 @@ files:
407
407
  - vendor/eac_docker/eac_docker.gemspec
408
408
  - vendor/eac_docker/lib/eac_docker.rb
409
409
  - vendor/eac_docker/lib/eac_docker/container.rb
410
+ - vendor/eac_docker/lib/eac_docker/debug.rb
410
411
  - vendor/eac_docker/lib/eac_docker/executables.rb
411
412
  - vendor/eac_docker/lib/eac_docker/images.rb
412
413
  - vendor/eac_docker/lib/eac_docker/images/base.rb
@@ -631,6 +632,15 @@ files:
631
632
  - vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/web_utils/videos/file.rb
632
633
  - vendor/ehbrs_ruby_utils/lib/ehbrs_ruby_utils/web_utils/videos/files_list.rb
633
634
  - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/resolution_spec.rb
635
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec.rb
636
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.source.yaml
637
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_attachment.target.yaml
638
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.source.yaml
639
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_audio.target.yaml
640
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.source.yaml
641
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_subtitle.target.yaml
642
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.source.yaml
643
+ - vendor/ehbrs_ruby_utils/spec/lib/ehbrs_ruby_utils/videos/stream_spec_files/menina_ovo_video.target.yaml
634
644
  - vendor/ehbrs_ruby_utils/spec/rubocop_check_spec.rb
635
645
  - vendor/ehbrs_ruby_utils/spec/spec_helper.rb
636
646
  homepage:
@@ -651,7 +661,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
651
661
  - !ruby/object:Gem::Version
652
662
  version: '0'
653
663
  requirements: []
654
- rubygems_version: 3.0.9
664
+ rubygems_version: 3.1.6
655
665
  signing_key:
656
666
  specification_version: 4
657
667
  summary: Tools for EHB/RS.
data/lib/ehbrs/runner.rb DELETED
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_base0/runner'
4
- require 'ehbrs/tools/application'
5
-
6
- module Ehbrs
7
- class Runner
8
- require_sub __FILE__
9
- include ::EacRubyBase0::Runner
10
-
11
- runner_definition do
12
- desc 'Tools for EHB/RS.'
13
- end
14
-
15
- def application
16
- ::Ehbrs::Tools.application
17
- end
18
- end
19
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
- require 'ehbrs/cooking_book/project'
5
-
6
- module Ehbrs
7
- class Runner
8
- class CookingBook
9
- require_sub __FILE__
10
-
11
- DEFAULT_SOURCE_DIR = '.'
12
-
13
- runner_with :help, :subcommands do
14
- desc 'Operações para livros de receitas.'
15
- arg_opt '-C', '--source-dir', 'Caminho para o diretório do código-fonte.'
16
- subcommands
17
- end
18
-
19
- private
20
-
21
- def source_dir_uncached
22
- (parsed.source_dir || DEFAULT_SOURCE_DIR).to_pathname.expand_path
23
- end
24
-
25
- def project_uncached
26
- ::Ehbrs::CookingBook::Project.new(source_dir)
27
- end
28
- end
29
- end
30
- end
@@ -1,50 +0,0 @@
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
- class Runner
9
- class CookingBook
10
- class Build
11
- runner_with :help, :subcommands do
12
- desc 'Operações para livros de receitas.'
13
- arg_opt '-d', '--target-dir', 'Caminho para o diretório destino da construção.'
14
- bool_opt '--open', 'Show the result.'
15
- end
16
-
17
- def run
18
- start_banner
19
- build.run
20
- open
21
- success 'Done'
22
- end
23
-
24
- private
25
-
26
- def build_uncached
27
- ::Ehbrs::CookingBook::Build.new(
28
- runner_context.call(:project), target_dir: parsed.target_dir
29
- )
30
- end
31
-
32
- def open
33
- return unless parsed.open?
34
-
35
- infom "Opening \"#{open_path}\"..."
36
- ::EacRubyUtils::Envs.local.command(OS.open_file_command, open_path).system!
37
- end
38
-
39
- def open_path
40
- build.index_page.target_path
41
- end
42
-
43
- def start_banner
44
- infov 'Project', build.project
45
- infov 'Target directory', build.target_dir
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Ehbrs
6
- class Runner
7
- class Finances
8
- require_sub __FILE__
9
-
10
- runner_with :help, :subcommands do
11
- desc 'Utilidades financeiras.'
12
- subcommands
13
- end
14
- end
15
- end
16
- end
@@ -1,35 +0,0 @@
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
- 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', 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
- ::EacDocker::Images::Named.new('lichti/warsaw-browser')
24
- end
25
-
26
- def docker_container_uncached
27
- docker_image.container.env('DISPLAY', "unix#{ENV.fetch('DISPLAY')}")
28
- .volume(::File.join(ENV['HOME'], 'Downloads'), '/home/bank/Downloads')
29
- .volume('/tmp/.X11-unix', '/tmp/.X11-unix').command_arg('bb')
30
- .temporary(true).interactive(true).tty(true)
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Ehbrs
6
- class Runner
7
- class Fs
8
- require_sub __FILE__
9
-
10
- runner_with :help, :subcommands do
11
- desc 'Ferramentas para o sistema de arquivos.'
12
- subcommands
13
- end
14
- end
15
- end
16
- end
@@ -1,79 +0,0 @@
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
- class Runner
9
- class Fs
10
- class Selected
11
- DEFAULT_TRAVERSER_RECURSIVE = true
12
-
13
- enable_jobs_runner
14
- runner_with :confirmation, :help, :filesystem_traverser do
15
- desc 'Seleciona diretórios.'
16
- arg_opt '-b', '--build-dir', 'Constrói diretório alvo.'
17
- end
18
-
19
- def run
20
- infov 'Recursive', traverser_recursive
21
- run_jobs :show, :build
22
- end
23
-
24
- protected
25
-
26
- def build_selected_directory(path)
27
- path
28
- end
29
-
30
- def directory_label(directory)
31
- directory.to_s
32
- end
33
-
34
- def directory_target_basename(directory)
35
- directory.basename.to_path
36
- end
37
-
38
- private
39
-
40
- def build
41
- infom "Building directory \"#{build_dir}\" with selected..."
42
- build_dir.clear
43
- selected_directories.each do |directory|
44
- ::EacRubyUtils::Envs.local.command(
45
- 'ln', '-s', directory.to_path,
46
- build_dir.join(directory_target_basename(directory))
47
- ).system!
48
- end
49
- end
50
-
51
- def build_dir_uncached
52
- parsed.build_dir.if_present { |v| ::EacRubyUtils::Fs::ClearableDirectory.new(v) }
53
- end
54
-
55
- def run_build?
56
- build_dir.present? && confirm?('Build?')
57
- end
58
-
59
- def selected_directories_uncached
60
- infom 'Searching selected directories...'
61
- @selected = []
62
- run_filesystem_traverser
63
- @selected.sort
64
- end
65
-
66
- def show
67
- infov 'Directories found', selected_directories.count
68
- selected_directories.each do |directory|
69
- puts directory_label(directory)
70
- end
71
- end
72
-
73
- def traverser_check_directory(path)
74
- @selected << build_selected_directory(path) if path.join('.selected').exist?
75
- end
76
- end
77
- end
78
- end
79
- end
@@ -1,159 +0,0 @@
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
- class Runner
9
- class Fs
10
- class UsedSpace
11
- runner_with :help do
12
- desc 'Verifica e anota alterações de espaço usado de um objeto de sistema de arquivos.'
13
- bool_opt '-c', '--check', 'Anota o espaço em disco.'
14
- bool_opt '-v', '--verbose', 'Verbose.'
15
- pos_arg :paths, repeat: true
16
- end
17
-
18
- def run
19
- root_banner
20
- paths.each(&:run)
21
- end
22
-
23
- def check?
24
- parsed.check
25
- end
26
-
27
- private
28
-
29
- def root_banner
30
- return unless verbose?
31
-
32
- infov 'Paths', paths.count
33
- infov 'Check?', check?
34
- infov 'Verbose?', verbose?
35
- end
36
-
37
- def path_class
38
- verbose? ? PathVerbose : PathUnverbose
39
- end
40
-
41
- def paths_uncached
42
- parsed.paths.map { |path| path_class.new(self, path) }
43
- end
44
-
45
- def verbose?
46
- parsed.verbose
47
- end
48
-
49
- class PathBase
50
- enable_simple_cache
51
- enable_speaker
52
- common_constructor :runner, :path do
53
- self.path = path.to_pathname
54
- end
55
-
56
- private
57
-
58
- def last_change_time
59
- time_label(observer.observer.last_change_time)
60
- end
61
-
62
- def last_check
63
- time_label(observer.observer.last_check_time)
64
- end
65
-
66
- def last_value
67
- bytes_label(observer.observer.last_value)
68
- end
69
-
70
- def current_value
71
- bytes_label(observer.current_value).colorize(
72
- observer.changing_value? ? :green : :light_black
73
- )
74
- end
75
-
76
- def changing_value?
77
- changing_label(observer.changing_value?)
78
- end
79
-
80
- def observer_uncached
81
- ::Ehbrs::Self::Observers::UsedSpace.new(path)
82
- end
83
-
84
- def changing_label(bool)
85
- bool.to_s.colorize(bool ? :green : :light_black)
86
- end
87
-
88
- def time_label(time)
89
- time.if_present('-', &:to_s)
90
- end
91
- end
92
-
93
- class PathVerbose < PathBase
94
- def run
95
- infom path.to_s
96
- ::EacRubyUtils::Speaker.context.on(::EacCli::Speaker.new(err_line_prefix: ' ')) do
97
- banner
98
- check
99
- end
100
- end
101
-
102
- private
103
-
104
- def banner
105
- { 'Path' => observer.path,
106
- 'Persistence path' => observer.persistence_path,
107
- 'Last check' => last_check,
108
- 'Last change' => last_change_time,
109
- 'Last value' => last_value,
110
- 'Current value' => current_value,
111
- 'Changing?' => changing_value? }.each do |k, v|
112
- infov k, v
113
- end
114
- end
115
-
116
- def check
117
- return unless runner.check?
118
-
119
- infom 'Checking...'
120
- if observer.check_current_value
121
- success 'A new value was recorded'
122
- else
123
- info 'No new value was recorded'
124
- end
125
- end
126
-
127
- def bytes_label(number)
128
- number.if_present('-') { |v| "#{v} (#{::Filesize.from("#{v} B").pretty})" }
129
- end
130
- end
131
-
132
- class PathUnverbose < PathBase
133
- def run
134
- self.puts output_line
135
- end
136
-
137
- def output_line
138
- [path.to_s.cyan, last_change_time, last_value, current_value, check_result]
139
- .reject(&:blank?).join('|')
140
- end
141
-
142
- def check_result
143
- return nil unless runner.check?
144
-
145
- observer.check_current_value ? 'Recorded'.green : 'Unchanged'.light_black
146
- end
147
-
148
- def bytes_label(number)
149
- number.if_present('-') { |v| ::Filesize.from("#{v} B").pretty }
150
- end
151
-
152
- def time_label(time)
153
- time.if_present('-') { |t| t.strftime('%d/%m/%y %H:%M') }
154
- end
155
- end
156
- end
157
- end
158
- end
159
- end