universal_pipe_handler 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +461 -0
  3. data/doc/README.gen +417 -0
  4. data/doc/todo/todo_for_the_universal_pipe_handler_project.md +300 -0
  5. data/img/UNIVERSAL_PIPE_HANDLER_LOGO.jpg +0 -0
  6. data/img/pipe_paradise.png +0 -0
  7. data/lib/universal_pipe_handler/base/base.rb +147 -0
  8. data/lib/universal_pipe_handler/cmdlet/cmdlet.rb +287 -0
  9. data/lib/universal_pipe_handler/cmdlets/add.rb +15 -0
  10. data/lib/universal_pipe_handler/cmdlets/add_audio.rb +22 -0
  11. data/lib/universal_pipe_handler/cmdlets/all.rb +37 -0
  12. data/lib/universal_pipe_handler/cmdlets/any.rb +25 -0
  13. data/lib/universal_pipe_handler/cmdlets/ascii_video.rb +30 -0
  14. data/lib/universal_pipe_handler/cmdlets/assign.rb +24 -0
  15. data/lib/universal_pipe_handler/cmdlets/capture_screen.rb +46 -0
  16. data/lib/universal_pipe_handler/cmdlets/colourize.rb +35 -0
  17. data/lib/universal_pipe_handler/cmdlets/convert_to.rb +21 -0
  18. data/lib/universal_pipe_handler/cmdlets/convert_to_images.rb +17 -0
  19. data/lib/universal_pipe_handler/cmdlets/convert_to_mp3.rb +28 -0
  20. data/lib/universal_pipe_handler/cmdlets/convert_to_wav.rb +17 -0
  21. data/lib/universal_pipe_handler/cmdlets/copy_directories.rb +23 -0
  22. data/lib/universal_pipe_handler/cmdlets/count_character.rb +31 -0
  23. data/lib/universal_pipe_handler/cmdlets/count_longest_row.rb +21 -0
  24. data/lib/universal_pipe_handler/cmdlets/crop.rb +26 -0
  25. data/lib/universal_pipe_handler/cmdlets/cut.rb +101 -0
  26. data/lib/universal_pipe_handler/cmdlets/days.rb +41 -0
  27. data/lib/universal_pipe_handler/cmdlets/decolourize.rb +25 -0
  28. data/lib/universal_pipe_handler/cmdlets/download.rb +30 -0
  29. data/lib/universal_pipe_handler/cmdlets/download_torrent.rb +17 -0
  30. data/lib/universal_pipe_handler/cmdlets/duration.rb +34 -0
  31. data/lib/universal_pipe_handler/cmdlets/extract.rb +27 -0
  32. data/lib/universal_pipe_handler/cmdlets/extract_all.rb +23 -0
  33. data/lib/universal_pipe_handler/cmdlets/extract_audio.rb +30 -0
  34. data/lib/universal_pipe_handler/cmdlets/extract_video.rb +18 -0
  35. data/lib/universal_pipe_handler/cmdlets/find_all.rb +40 -0
  36. data/lib/universal_pipe_handler/cmdlets/generate_random_video.rb +29 -0
  37. data/lib/universal_pipe_handler/cmdlets/generate_string.rb +27 -0
  38. data/lib/universal_pipe_handler/cmdlets/get_all_audio_files.rb +33 -0
  39. data/lib/universal_pipe_handler/cmdlets/get_all_files.rb +61 -0
  40. data/lib/universal_pipe_handler/cmdlets/get_all_images.rb +47 -0
  41. data/lib/universal_pipe_handler/cmdlets/get_all_images_including_subdirs.rb +26 -0
  42. data/lib/universal_pipe_handler/cmdlets/get_all_video_files.rb +34 -0
  43. data/lib/universal_pipe_handler/cmdlets/get_last_characters.rb +24 -0
  44. data/lib/universal_pipe_handler/cmdlets/help.rb +36 -0
  45. data/lib/universal_pipe_handler/cmdlets/identify.rb +29 -0
  46. data/lib/universal_pipe_handler/cmdlets/increase_audio.rb +26 -0
  47. data/lib/universal_pipe_handler/cmdlets/install.rb +32 -0
  48. data/lib/universal_pipe_handler/cmdlets/match_regex.rb +24 -0
  49. data/lib/universal_pipe_handler/cmdlets/n_directories.rb +25 -0
  50. data/lib/universal_pipe_handler/cmdlets/n_files.rb +20 -0
  51. data/lib/universal_pipe_handler/cmdlets/n_words.rb +25 -0
  52. data/lib/universal_pipe_handler/cmdlets/number_lines.rb +34 -0
  53. data/lib/universal_pipe_handler/cmdlets/open_in_browser.rb +40 -0
  54. data/lib/universal_pipe_handler/cmdlets/pad_left.rb +20 -0
  55. data/lib/universal_pipe_handler/cmdlets/pad_right.rb +20 -0
  56. data/lib/universal_pipe_handler/cmdlets/play.rb +18 -0
  57. data/lib/universal_pipe_handler/cmdlets/position.rb +21 -0
  58. data/lib/universal_pipe_handler/cmdlets/processes.rb +18 -0
  59. data/lib/universal_pipe_handler/cmdlets/random.rb +21 -0
  60. data/lib/universal_pipe_handler/cmdlets/random_video.rb +23 -0
  61. data/lib/universal_pipe_handler/cmdlets/read_file.rb +44 -0
  62. data/lib/universal_pipe_handler/cmdlets/read_line.rb +31 -0
  63. data/lib/universal_pipe_handler/cmdlets/read_n_lines.rb +38 -0
  64. data/lib/universal_pipe_handler/cmdlets/read_n_lines_inverted.rb +36 -0
  65. data/lib/universal_pipe_handler/cmdlets/remove_audio.rb +22 -0
  66. data/lib/universal_pipe_handler/cmdlets/remove_comments.rb +26 -0
  67. data/lib/universal_pipe_handler/cmdlets/remove_directories.rb +29 -0
  68. data/lib/universal_pipe_handler/cmdlets/remove_html.rb +25 -0
  69. data/lib/universal_pipe_handler/cmdlets/remove_newlines.rb +23 -0
  70. data/lib/universal_pipe_handler/cmdlets/remove_numbers.rb +25 -0
  71. data/lib/universal_pipe_handler/cmdlets/repackage_to.rb +27 -0
  72. data/lib/universal_pipe_handler/cmdlets/replace_underscores.rb +29 -0
  73. data/lib/universal_pipe_handler/cmdlets/resize.rb +39 -0
  74. data/lib/universal_pipe_handler/cmdlets/resize_image.rb +45 -0
  75. data/lib/universal_pipe_handler/cmdlets/reverse.rb +22 -0
  76. data/lib/universal_pipe_handler/cmdlets/screenshot.rb +41 -0
  77. data/lib/universal_pipe_handler/cmdlets/search_torrent.rb +24 -0
  78. data/lib/universal_pipe_handler/cmdlets/seconds.rb +23 -0
  79. data/lib/universal_pipe_handler/cmdlets/select.rb +23 -0
  80. data/lib/universal_pipe_handler/cmdlets/show_lines.rb +31 -0
  81. data/lib/universal_pipe_handler/cmdlets/shuffle.rb +16 -0
  82. data/lib/universal_pipe_handler/cmdlets/shuffle_csv.rb +55 -0
  83. data/lib/universal_pipe_handler/cmdlets/size.rb +21 -0
  84. data/lib/universal_pipe_handler/cmdlets/sort_alphabetical.rb +20 -0
  85. data/lib/universal_pipe_handler/cmdlets/sort_by_date.rb +23 -0
  86. data/lib/universal_pipe_handler/cmdlets/starts_with.rb +25 -0
  87. data/lib/universal_pipe_handler/cmdlets/stat_file.rb +61 -0
  88. data/lib/universal_pipe_handler/cmdlets/to_ascii.rb +38 -0
  89. data/lib/universal_pipe_handler/cmdlets/to_camel_case.rb +38 -0
  90. data/lib/universal_pipe_handler/cmdlets/to_dna.rb +31 -0
  91. data/lib/universal_pipe_handler/cmdlets/to_movie.rb +16 -0
  92. data/lib/universal_pipe_handler/cmdlets/to_pdf.rb +58 -0
  93. data/lib/universal_pipe_handler/cmdlets/translate.rb +36 -0
  94. data/lib/universal_pipe_handler/cmdlets/upload_to.rb +29 -0
  95. data/lib/universal_pipe_handler/cmdlets/word_count.rb +39 -0
  96. data/lib/universal_pipe_handler/cmdlets/word_wrap.rb +26 -0
  97. data/lib/universal_pipe_handler/cmdlets/write_to.rb +51 -0
  98. data/lib/universal_pipe_handler/cmdlets/years.rb +30 -0
  99. data/lib/universal_pipe_handler/cmdlets_handler/cmdlets_handler.rb +193 -0
  100. data/lib/universal_pipe_handler/colours/colourize.rb +112 -0
  101. data/lib/universal_pipe_handler/colours/colours.rb +54 -0
  102. data/lib/universal_pipe_handler/configuration/configuration.rb +18 -0
  103. data/lib/universal_pipe_handler/constants/constants.rb +201 -0
  104. data/lib/universal_pipe_handler/dataset/dataset.rb +14 -0
  105. data/lib/universal_pipe_handler/project/project.rb +36 -0
  106. data/lib/universal_pipe_handler/requires/do_require_the_individual_cmdlet_files.rb +21 -0
  107. data/lib/universal_pipe_handler/requires/require_the_universal_pipe_handler.rb +14 -0
  108. data/lib/universal_pipe_handler/shell/shell.rb +256 -0
  109. data/lib/universal_pipe_handler/toplevel_methods/all_actions.rb +48 -0
  110. data/lib/universal_pipe_handler/toplevel_methods/cmdlet_directory.rb +22 -0
  111. data/lib/universal_pipe_handler/toplevel_methods/e.rb +16 -0
  112. data/lib/universal_pipe_handler/toplevel_methods/misc.rb +54 -0
  113. data/lib/universal_pipe_handler/toplevel_methods/rds.rb +18 -0
  114. data/lib/universal_pipe_handler/toplevel_methods/token.rb +18 -0
  115. data/lib/universal_pipe_handler/version/version.rb +19 -0
  116. data/lib/universal_pipe_handler/yaml/aliases_to_cmdlets.yml +250 -0
  117. data/lib/universal_pipe_handler/yaml/allowed_cmdlets.yml +118 -0
  118. data/lib/universal_pipe_handler/yaml/predefined_methods.yml +15 -0
  119. data/lib/universal_pipe_handler.rb +5 -0
  120. data/test/testing_the_universal_pipe_handler.rb +65 -0
  121. data/test/this_file +46 -0
  122. data/universal_pipe_handler.gemspec +80 -0
  123. metadata +299 -0
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/get_all_images_including_subdirs.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_get_all_images_including_subdirs
11
+ #
12
+ # The first argument should be the path to a directory.
13
+ # ========================================================================= #
14
+ def self.cmdlet_get_all_images_including_subdirs(
15
+ optional_target_dir = nil
16
+ )
17
+ set_target_directory(optional_target_dir) if optional_target_dir
18
+ all_the_images = action_get_all_images_including_subdirs(
19
+ { :from => target_directory? },
20
+ :include_subdirs
21
+ ) # true for including all subdirs
22
+ set_result(all_the_images)
23
+ return result?
24
+ end; self.instance_eval { alias get_all_images_including_subdirs cmdlet_get_all_images_including_subdirs } # === UniversalPipeHandler.get_all_images_including_subdirs
25
+
26
+ end
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/get_all_video_files.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_get_all_video_files
11
+ #
12
+ # We depend on the action "get all files" for this method here.
13
+ #
14
+ # By default we will fetch all audios from the directory /Depot/Audio.
15
+ # This behaviour may change in the future, and default to Dir.pwd
16
+ # instead.
17
+ # ========================================================================= #
18
+ def self.cmdlet_get_all_video_files(
19
+ from = Dir.pwd
20
+ )
21
+ from << '/' unless from.end_with? '/'
22
+ _ = action_get_all_files(from)
23
+ # ======================================================================= #
24
+ # Next, we apply a filter to get only the audio files:
25
+ # ======================================================================= #
26
+ _.reject! {|entry|
27
+ entry = File.extname(entry).delete('.')
28
+ ! ARRAY_VIDEO_FILES.include?(entry)
29
+ }
30
+ set_result(_) # We use this result.
31
+ return _
32
+ end; self.instance_eval { alias get_all_video_files cmdlet_get_all_video_files } # === UniversalPipeHandler.get_all_video_files
33
+
34
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/get_last_characters.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_get_last_characters
11
+ #
12
+ # Gets the specified n last characters from a string.
13
+ # ========================================================================= #
14
+ def self.cmdlet_get_last_characters(
15
+ i = 50
16
+ )
17
+ i = i.to_i
18
+ joined = result?.join
19
+ joined = joined.delete(N) # remove all newlines for now. Or not. Hmmm.
20
+ set_result joined[-i, i.abs]
21
+ return result?
22
+ end; self.instance_eval { alias get_last_characters cmdlet_get_last_characters } # === UniversalPipeHandler.get_last_characters
23
+
24
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/help.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_help
11
+ #
12
+ # List all available action types. In order for this to work, the constant
13
+ # REGISTERED_ACTIONS must have been set.
14
+ #
15
+ # To test this, try this in the pipeshell:
16
+ #
17
+ # help?
18
+ #
19
+ # ========================================================================= #
20
+ def self.cmdlet_help
21
+ set_result(registered_actions?)
22
+ if be_verbose?
23
+ e 'The available actions are:'
24
+ registered_actions?.each_with_index { |action, index| index += 1
25
+ left_part = (index.to_s).rjust(3)+') '
26
+ if Object.const_defined? :Konsole # Add some colours then.
27
+ left_part = Konsole.darkseagreen(left_part)
28
+ end
29
+ e left_part+action
30
+ }
31
+ end
32
+ return result?
33
+ end; self.instance_eval { alias help cmdlet_help } # === UniversalPipeHandler.help
34
+ self.instance_eval { alias help? cmdlet_help } # === UniversalPipeHandler.help?
35
+
36
+ end
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/identify.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_identify
11
+ #
12
+ # This method will attempt to identify a file, in particular
13
+ # multimedia data (thus, audio and video).
14
+ #
15
+ # For this we will tap into the project MultimediaParadise.
16
+ # ========================================================================= #
17
+ def self.cmdlet_identify(
18
+ this_file = result?
19
+ )
20
+ this_file = this_file.first if this_file.is_a? Array
21
+ if is_a_multimedia_file?(this_file)
22
+ _ = MultimediaParadise::VideoInformation.new(this_file)
23
+ _.report
24
+ set_result _.data # This will be an Array.
25
+ end
26
+ return result?
27
+ end; self.instance_eval { alias identify cmdlet_identify } # === UniversalPipeHandler.identify
28
+
29
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/increase_audio.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_increase_audio
11
+ #
12
+ # This method can be used to increase the audio volume.
13
+ # ========================================================================= #
14
+ def self.cmdlet_increase_audio(
15
+ by_how_much_percent = '5'
16
+ )
17
+ this_file = result? # We assume here that a
18
+ by_how_much_percent = by_how_much_percent.to_i
19
+ _ = IncreaseVolume.new(this_file, :do_not_run_yet)
20
+ _.set_gain by_how_much_percent
21
+ _.run
22
+ set_result(_.file?)
23
+ return result?
24
+ end; self.instance_eval { alias increase_audio cmdlet_increase_audio } # === UniversalPipeHandler.increase_audio
25
+
26
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/install.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_install
11
+ #
12
+ # This will try to install something via RBT::Installer.new
13
+ # ========================================================================= #
14
+ def self.cmdlet_install(
15
+ i = result?
16
+ )
17
+ i = i.first if i.is_a? Array
18
+ if Object.const_defined? :Easycompile
19
+ unless File.exist?(i) and ! i.include?('/') # File does not exist here.
20
+ target = SRC_DIR+i.upcase+'/'+i+'*'
21
+ entries = Dir[target]
22
+ i = entries.first unless entries.empty?
23
+ end
24
+ _ = Easycompile.compile(i)
25
+ elsif Object.const_defined? :RBT
26
+ _ = RBT::Compile.new(i)
27
+ end
28
+ set_result(i)
29
+ return result?
30
+ end; self.instance_eval { alias install cmdlet_install } # === UniversalPipeHandler.install
31
+
32
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/match_regex.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_match_regex
11
+ #
12
+ # This method matches to a regex. Or rather, to the line that
13
+ # includes a particular match.
14
+ # ========================================================================= #
15
+ def self.cmdlet_match_regex(i = result?)
16
+ regex = /#{i}/
17
+ match = []
18
+ if result?
19
+ result?.each { |t| match << t if t =~ regex }
20
+ set_result(match)
21
+ end
22
+ end; self.instance_eval { alias match_regex cmdlet_match_regex } # === UniversalPipeHandler.match_regex
23
+
24
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/n_directories.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_n_directories
11
+ #
12
+ # Tell us how many directories we have.
13
+ #
14
+ # We need to keep in mind that a directory may also have 0
15
+ # subdirectories.
16
+ # ========================================================================= #
17
+ def self.cmdlet_n_directories
18
+ result = get_all_directories
19
+ size = result.size
20
+ set_result(size)
21
+ return result?
22
+ end; self.instance_eval { alias n_directories cmdlet_n_directories } # === UniversalPipeHandler.n_directories
23
+ self.instance_eval { alias n_directories? cmdlet_n_directories } # === UniversalPipeHandler.n_directories?
24
+
25
+ end
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/n_files.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_n_files
11
+ # ========================================================================= #
12
+ def self.cmdlet_n_files
13
+ result = Dir.entries(Dir.pwd).reject! {|_| File.directory? _ }
14
+ result = result.size
15
+ set_result(result)
16
+ return result?
17
+ end; self.instance_eval { alias n_files cmdlet_n_files } # === UniversalPipeHandler.n_files
18
+ self.instance_eval { alias n_files? cmdlet_n_files } # === UniversalPipeHandler.n_files?
19
+
20
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/n_words.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_n_words
11
+ #
12
+ # This commandlet will simply count how many words are in a given string.
13
+ # ========================================================================= #
14
+ def self.cmdlet_n_words(i = result?)
15
+ if i.is_a? String
16
+ _ = i.join
17
+ else
18
+ _ = i
19
+ end
20
+ joined = _.join(N)
21
+ set_result joined.split(/\s+/).size
22
+ return result?
23
+ end; self.instance_eval { alias n_words cmdlet_n_words } # === UniversalPipeHandler.n_words
24
+
25
+ end
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/number_lines.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ require 'universal_pipe_handler/toplevel_methods/e.rb'
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_number_lines (nl tag)
13
+ #
14
+ # We don't need to use an argument here, as we can directly make
15
+ # use of the @result variable.
16
+ # ========================================================================= #
17
+ def self.cmdlet_number_lines
18
+ counter = 1
19
+ _ = []
20
+ @result = result?.split(N) if result?.is_a? String
21
+ if result?
22
+ result?.each {|member|
23
+ unless counter == (@result.size + 1)
24
+ _ << ('%5s' % counter.to_s )+' '+member
25
+ end
26
+ counter += 1
27
+ }
28
+ set_result(_) #.join
29
+ else
30
+ e 'Sorry, we could not find any result.'
31
+ end
32
+ end; self.instance_eval { alias number_lines cmdlet_number_lines } # === UniversalPipeHandler.number_lines
33
+
34
+ end
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/open_in_browser.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_open_in_browser
11
+ # ========================================================================= #
12
+ def self.cmdlet_open_in_browser(i = result?)
13
+ if i.is_a? Array
14
+ i.compact! # Get rid of nil values.
15
+ end
16
+ if i.empty? && @img_file
17
+ i = @img_file.to_a
18
+ elsif i.empty?
19
+ i = result?
20
+ end
21
+ i << @file if i.empty? && ! @file.nil?
22
+ i = [i] if i.is_a? String
23
+ # ======================================================================= #
24
+ # Next, iterate over our Array. (That also means that we expect an
25
+ # Array here.)
26
+ # ======================================================================= #
27
+ if i.is_a? Array # if the input is an array
28
+ if i.empty?
29
+ e 'Can not open anything as the input was empty.'
30
+ else
31
+ i.each { |entry|
32
+ @display_the_result = false # Don't show this on the commandline.
33
+ sys_cmd = 'firefox -new-tab "'+entry+'"'
34
+ system(sys_cmd)
35
+ }
36
+ end
37
+ end
38
+ end; self.instance_eval { alias open_in_browser cmdlet_open_in_browser } # === UniversalPipeHandler.open_in_browser
39
+
40
+ end
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/pad_left.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_pad_left
11
+ # ========================================================================= #
12
+ def self.cmdlet_pad_left(
13
+ default_n_pad_to_use = 2
14
+ )
15
+ pad = ' ' * default_n_pad_to_use.to_i
16
+ set_result(result?.map { |_| pad+_ }) # Apply the padding on each element.
17
+ return result?
18
+ end; self.instance_eval { alias pad_left cmdlet_pad_left } # === UniversalPipeHandler.pad_left
19
+
20
+ end
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/pad_right.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_pad_right
11
+ # ========================================================================= #
12
+ def self.cmdlet_pad_right(
13
+ default_n_pad_to_use = 2
14
+ )
15
+ pad = ' ' * default_n_pad_to_use.to_i
16
+ set_result(result?.map { |_| _+pad })
17
+ return result?
18
+ end; self.instance_eval { alias pad_right cmdlet_pad_right } # === UniversalPipeHandler.pad_right
19
+
20
+ end
@@ -0,0 +1,18 @@
1
+ class Pipe
2
+
3
+ # ========================================================================= #
4
+ # === action_play
5
+ #
6
+ # Using set_result() in this method does not seem to make a lot of
7
+ # sense, so we won't do so.
8
+ # ========================================================================= #
9
+ def action_play(this_file = result?)
10
+ if this_file.is_a? Array
11
+ this_file.each {|entry| action_play(entry) }
12
+ else
13
+ use_this_command_to_play_video_files = 'mplayer -vo x11 -zoom '
14
+ esystem use_this_command_to_play_video_files+this_file
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/position.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_position
11
+ #
12
+ # We smply assign to position in a stream (video or audio), then
13
+ # return the original result unaltered.
14
+ # ========================================================================= #
15
+ def self.cmdlet_position(i)
16
+ set_position(i)
17
+ set_result(i)
18
+ result?
19
+ end; self.instance_eval { alias position cmdlet_position } # === UniversalPipeHandler.position
20
+
21
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/processes.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_processes
11
+ #
12
+ # Show the processes on Linux.
13
+ # ========================================================================= #
14
+ def self.cmdlet_processes?
15
+ set_result `ps ax`
16
+ end; self.instance_eval { alias processes? cmdlet_processes? } # === UniversalPipeHandler.processes?
17
+
18
+ end
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/random.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_random
11
+ #
12
+ # Obtain a (one) random entry from @result.
13
+ #
14
+ # This is also equivalent to random_line.
15
+ # ========================================================================= #
16
+ def self.cmdlet_random(i = result?)
17
+ set_result(i.sample)
18
+ return result?
19
+ end; self.instance_eval { alias random cmdlet_random } # === UniversalPipeHandler.random
20
+
21
+ end
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/random_video.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_random_video
11
+ #
12
+ # This method will return a random from the current directory.
13
+ # ========================================================================= #
14
+ def self.cmdlet_random_video(
15
+ from_this_dir = ("#{Dir.pwd}/").squeeze('/')
16
+ )
17
+ files = Dir[from_this_dir+'*']
18
+ files.select! {|entry| is_a_video_file?(entry) }
19
+ set_result(files.sample)
20
+ return result?
21
+ end; self.instance_eval { alias random_video cmdlet_random_video } # === UniversalPipeHandler.random_video
22
+
23
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/read_file.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_read_file
11
+ #
12
+ # If we input a number as argument this_file, then we assume that
13
+ # we want to fetch a file at this position, i.e. if "3" then this
14
+ # translates to the third file in the directory.
15
+ # ========================================================================= #
16
+ def self.cmdlet_read_file(
17
+ this_file = result?
18
+ )
19
+ this_file = this_file.first if this_file.is_a? Array
20
+ if this_file =~ /\d+/
21
+ this_file = Dir['*'].sort[ this_file.to_i - 1 ] # Sort the entries first, then access one of them.
22
+ end
23
+ this_file = this_file.to_s
24
+ if File.exist? this_file
25
+ if File.directory? this_file # If it is a dir, we read in the words combined from all files in that dir.
26
+ _ = this_file
27
+ _ << '/' unless _.end_with? '/'
28
+ _ << '*'
29
+ array_of_files = Dir[_].reject {|x| File.directory?(x)}
30
+ _ = [] # reassign the throwaway variable.
31
+ array_of_files.each { |file| _ << File.readlines(file).flatten }
32
+ set_result _.flatten
33
+ else
34
+ set_result File.readlines(this_file)
35
+ end
36
+ else # Else the file does not exist.
37
+ e 'File `'+sfile(this_file)+'` does not exist, '+
38
+ 'thus we can not read its content.'
39
+ set_result nil
40
+ end
41
+ return result?
42
+ end; self.instance_eval { alias read_file cmdlet_read_file } # === UniversalPipeHandler.read_file
43
+
44
+ end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/read_line.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_read_line
11
+ #
12
+ # This is the cmdlet that will read in a file.
13
+ # ========================================================================= #
14
+ def self.cmdlet_read_line(this_line_number = 1)
15
+ _ = result?
16
+ _ = _.join if _.is_a? Array # Work with a copy.
17
+ if _.empty? # assume a problem here.
18
+ _ = this_line_number
19
+ this_line_number = 0
20
+ elsif this_line_number == 'last' # special keyword. Pass through for now. We handle it later.
21
+ else # Default.
22
+ this_line_number = this_line_number.to_i.abs
23
+ end
24
+ _ = File.readlines(_)
25
+ if this_line_number == 'last'
26
+ this_line_number = _.size
27
+ end
28
+ set_result _[this_line_number - 1]
29
+ end; self.instance_eval { alias read_line cmdlet_read_line } # === UniversalPipeHandler.read_line
30
+
31
+ end
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/read_n_lines.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_read_n_lines
11
+ #
12
+ # To manually test this method, do:
13
+ #
14
+ # File.readlines('/Depot/Information/Confree_Images.html')[0..20]
15
+ #
16
+ # ========================================================================= #
17
+ def self.cmdlet_read_n_lines(
18
+ n_lines_to_read = 50,
19
+ optional_file = nil
20
+ )
21
+ if n_lines_to_read.is_a? Array
22
+ if n_lines_to_read.size > 1
23
+ optional_file = n_lines_to_read.pop # Eliminate the last entry.
24
+ n_lines_to_read = n_lines_to_read.first
25
+ else
26
+ n_lines_to_read = n_lines_to_read.first
27
+ end
28
+ end
29
+ n_lines_to_read = n_lines_to_read.to_i.abs
30
+ if optional_file
31
+ _ = action_read_file(optional_file)
32
+ else
33
+ _ = result? #.split(N)
34
+ end
35
+ set_result(_[0 .. (n_lines_to_read-1)])
36
+ end; self.instance_eval { alias read_n_lines cmdlet_read_n_lines } # === UniversalPipeHandler.read_n_lines
37
+
38
+ end