universal_pipe_handler 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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