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,36 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/read_n_lines_inverted.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_read_n_lines_inverted
11
+ # ========================================================================= #
12
+ def self.cmdlet_read_n_lines_inverted(
13
+ n_lines_to_read = 50,
14
+ optional_file = nil
15
+ )
16
+ if n_lines_to_read.is_a? Array
17
+ if n_lines_to_read.size > 1
18
+ optional_file = n_lines_to_read.pop unless n_lines_to_read.nil?
19
+ end
20
+ n_lines_to_read = n_lines_to_read.first
21
+ end
22
+ n_lines_to_read = n_lines_to_read.to_i.abs
23
+ if optional_file
24
+ _ = File.readlines(optional_file)
25
+ else
26
+ _ = result?
27
+ end
28
+ if _
29
+ set_result(_.reverse[0 .. (n_lines_to_read-1)].reverse)
30
+ else
31
+ e 'The input in the method `'+__method__.to_s+'` is '+
32
+ 'nil. Can not continue.'
33
+ end
34
+ end; self.instance_eval { alias read_n_lines_inverted cmdlet_read_n_lines_inverted } # === UniversalPipeHandler.read_n_lines_inverted
35
+
36
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/remove_audio.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_audio
11
+ #
12
+ # This action will remove the audio from a clip, by calling the
13
+ # class RemoveAudio.
14
+ # ========================================================================= #
15
+ def self.cmdlet_remove_audio(
16
+ i = result?
17
+ )
18
+ set_result(RemoveAudio[i])
19
+ return result?
20
+ end; self.instance_eval { alias remove_audio cmdlet_remove_audio } # === UniversalPipeHandler.remove_audio
21
+
22
+ 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/remove_comments.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_comments
11
+ #
12
+ # Remove comments via the class StripComments.
13
+ # ========================================================================= #
14
+ def self.cmdlet_remove_comments(
15
+ i = result?,
16
+ use_this_split_character = '#'
17
+ )
18
+ _ = RemoveComments::RemoveComments.new(i, :be_silent) # bl $RSRC/remove_comments/lib/remove_comments/remove_comments/remove_comments.rb
19
+ _.split_character = use_this_split_character
20
+ _.retain_newlines
21
+ _.run
22
+ set_result(_.result)
23
+ return result?
24
+ end; self.instance_eval { alias remove_comments cmdlet_remove_comments } # === UniversalPipeHandler.remove_comments
25
+
26
+ 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/remove_directories.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_directories
11
+ #
12
+ # We use this action to remove directories.
13
+ # ========================================================================= #
14
+ def self.cmdlet_remove_directories
15
+ result = []
16
+ _ = result?.compact # Get rid of nil values.
17
+ if _.empty? # Then get all directory from the current dir.
18
+ _ = get_all_directories
19
+ end
20
+ _.map {|entry|
21
+ result << entry if File.directory?(entry)
22
+ }
23
+ e 'Removing these directories next:'
24
+ result.each { |entry| remove(entry) }
25
+ set_result(result)
26
+ return result?
27
+ end; self.instance_eval { alias remove_directories cmdlet_remove_directories } # === UniversalPipeHandler.remove_directories
28
+
29
+ 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/remove_numbers.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_html
11
+ #
12
+ # Remove the HTML part from a string.
13
+ # ========================================================================= #
14
+ def self.cmdlet_remove_html(partial_remove = false)
15
+ _ = result? # Work on a copy of result here.
16
+ _ = _.join if _.is_a? Array
17
+ if partial_remove
18
+ set_result _.gsub(/\</, '').gsub(/\>/,'')
19
+ else
20
+ set_result Cyberweb.remove_html(_)
21
+ end
22
+ return result? # This is ok again.
23
+ end; self.instance_eval { alias remove_html cmdlet_remove_html } # === UniversalPipeHandler.remove_html
24
+
25
+ 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/remove_newlines.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_newlines
11
+ #
12
+ # Remove comments via a gsub.
13
+ #
14
+ # This is similar to using tr by the way, like: tr "\n" " "
15
+ # ========================================================================= #
16
+ def self.cmdlet_remove_newlines(i = result?)
17
+ i = i.join if i.is_a? Array
18
+ _ = i.gsub(/\n/, ' ') # Here we will get rid of the "\"n.
19
+ set_result(_)
20
+ return result?
21
+ end; self.instance_eval { alias remove_newlines cmdlet_remove_newlines } # === UniversalPipeHandler.remove_newlines
22
+
23
+ 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/remove_numbers.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_remove_numbers
11
+ #
12
+ # This method will remove numbers. We will apply the modification on
13
+ # @result.
14
+ #
15
+ # The method remove_numbers is defined in shared/shared.rb
16
+ # ========================================================================= #
17
+ def self.cmdlet_remove_numbers
18
+ if result?.is_a? Array
19
+ @result.map! {|entry| remove_numbers(entry) }
20
+ else
21
+ set_results(remove_numbers(result?))
22
+ end
23
+ end; self.instance_eval { alias remove_numbers cmdlet_remove_numbers } # === UniversalPipeHandler.remove_numbers
24
+
25
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/repackage_to.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_repackage_to
11
+ # ========================================================================= #
12
+ def self.cmdlet_repackage_to(
13
+ this = :zip
14
+ )
15
+ case this.to_s
16
+ # ======================================================================= #
17
+ # === zip
18
+ # ======================================================================= #
19
+ when 'zip'
20
+ _ = 'zip a_zip_archive_'+
21
+ action_generate_string(5, false).gsub(/ /,'')+
22
+ '_'+get_date+'_'+get_time+'.zip '+result?.join(' ')
23
+ run_sys_cmd _
24
+ end
25
+ end; self.instance_eval { alias repackage_to cmdlet_repackage_to } # === UniversalPipeHandler.repackage_to
26
+
27
+ 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/replace_underscores.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ require 'roebe/classes/replace_space_with_underscore/replace_space_with_underscore.rb'
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_replace_underscores
13
+ #
14
+ # We replace all ' ' with '_'. In other words, blanks are replaced
15
+ # with underscores, in the filenames. This is done through the class
16
+ # ReplaceSpaceWithUnderscore.
17
+ #
18
+ # To test this, try:
19
+ #
20
+ # ls | replace underscores
21
+ #
22
+ # ========================================================================= #
23
+ def self.cmdlet_replace_underscores
24
+ result = Roebe::ReplaceSpaceWithUnderscore.new
25
+ set_result(result.modified_these_files)
26
+ return result?
27
+ end; self.instance_eval { alias replace_underscores cmdlet_replace_underscores } # === UniversalPipeHandler.replace_underscores
28
+
29
+ end
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/reverse.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_resize
11
+ #
12
+ # This method can be used to resize video, audio or image data.
13
+ # ========================================================================= #
14
+ def self.cmdlet_resize(
15
+ which_files = nil,
16
+ resize_how = nil
17
+ )
18
+ if which_files.is_a? Array
19
+ which_files.each {|entry| action_resize(resize_how, entry) }
20
+ else
21
+ if resize_how.include? '%'
22
+ resize_how = (resize_how.to_i / 100.0)
23
+ output_file = rds(Dir.pwd+'/output_'+File.basename(which_file))
24
+ # ===================================================================== #
25
+ # Next, resize the video here:
26
+ # ===================================================================== #
27
+ if is_video_file?
28
+ _ = 'ffmpeg -i '+_+' -vf scale=iw*'+resize_how.to_s+':-1 '+output_file
29
+ else # Assume image here.
30
+ _ = 'convert '+which_file
31
+ end
32
+ set_result(output_file)
33
+ esystem _
34
+ return result?
35
+ end
36
+ end
37
+ end; self.instance_eval { alias resize cmdlet_resize } # === UniversalPipeHandler.resize
38
+
39
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/resize_image.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ require 'universal_pipe_handler/toplevel_methods/rds.rb'
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_resize_image
13
+ #
14
+ # This will resize an image, by making use of the program called
15
+ # "convert" from the ImageMagick suite.
16
+ # ========================================================================= #
17
+ def self.cmdlet_resize_image(
18
+ second_argument,
19
+ third_argument = nil
20
+ )
21
+ if second_argument.is_a? Array and second_argument.size > 1
22
+ third_argument = second_argument.pop # Eliminate last Array member.
23
+ end
24
+ if third_argument
25
+ second_argument = second_argument.to_a unless second_argument.is_a? Array
26
+ @result = second_argument
27
+ second_argument = third_argument
28
+ end
29
+ array = []
30
+ result?.each { |img|
31
+ store_here = ''
32
+ if img.include? '/'
33
+ store_here << rds(File.dirname(img))
34
+ else
35
+ store_here << rds(Dir.pwd)
36
+ end
37
+ array << (converted_name = store_here+'resized_image_'+File.basename(img) )
38
+ _ = 'convert '+img+' -resize '+second_argument+' '+converted_name
39
+ run_sys_cmd _
40
+ }
41
+ set_result(array)
42
+ do_not_display
43
+ end
44
+
45
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/reverse.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_reverse
11
+ #
12
+ # To test this method, try:
13
+ #
14
+ # cat :main_file | reverse
15
+ #
16
+ # ========================================================================= #
17
+ def self.cmdlet_reverse
18
+ set_result result?.reverse
19
+ return result?
20
+ end; self.instance_eval { alias reverse cmdlet_reverse } # === UniversalPipeHandler.reverse
21
+
22
+ end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/screenshot.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ require 'roebe/classes/take_screenshot.rb'
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_screenshot (screenshot tag)
13
+ #
14
+ # Make a screenshot through this method here.
15
+ #
16
+ # To test this, do:
17
+ #
18
+ # snapshot
19
+ #
20
+ # ========================================================================= #
21
+ def self.cmdlet_screenshot
22
+ set_img_file = Dir.pwd+'/Screenshot_'+get_date+'_'+get_time+'.png'
23
+ @result = @img_file
24
+ if Object.const_defined?(:Roebe) and
25
+ Roebe.const_defined?(:TakeScreenshot)
26
+ _ = Roebe::TakeScreenshot.new :dont_run_yet
27
+ _.store_into_this_file @img_file if @img_file # Otherwise use the default.
28
+ _.delay = 0
29
+ _.do_not_open_in_gimp # Don't want it gimp now.
30
+ _.be_quiet
31
+ _.set_output_file(set_img_file)
32
+ _.run
33
+ set_result _.output_file?
34
+ return result?
35
+ else
36
+ _ = 'scrot '+@img_file
37
+ esystem _
38
+ end
39
+ end; self.instance_eval { alias screenshot cmdlet_screenshot } # === UniversalPipeHandler.screenshot
40
+
41
+ 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/search_torrent.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ begin
10
+ require 'search_torrent'
11
+ rescue LoadError; end
12
+
13
+ # ========================================================================= #
14
+ # === UniversalPipeHandler.cmdlet_search_torrent
15
+ #
16
+ # Simply delegate towards MultimediaConversions.
17
+ # ========================================================================= #
18
+ def self.cmdlet_search_torrent(i = result?)
19
+ search_torrent = SearchTorrent.new(remove_quotes(i), false) # false for dont be verbose
20
+ search_torrent.fetch_remote_url
21
+ set_result search_torrent.url
22
+ end; self.instance_eval { alias search_torrent cmdlet_search_torrent } # === UniversalPipeHandler.search_torrent
23
+
24
+ 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/seconds.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_seconds?
11
+ #
12
+ # This method is a fake-method: it will simply return the result in
13
+ # form of an Integer.
14
+ # ========================================================================= #
15
+ def self.cmdlet_seconds?(i = result?)
16
+ i = i.first if i.is_a? Array
17
+ i = i.to_i
18
+ set_result(i)
19
+ return i
20
+ end; self.instance_eval { alias seconds? cmdlet_seconds? } # === UniversalPipeHandler.seconds?
21
+ self.instance_eval { alias n_seconds? cmdlet_seconds? } # === UniversalPipeHandler.n_seconds?
22
+
23
+ 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/select.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_select
11
+ #
12
+ # We use this method to select n entries, where n is the argument to
13
+ # that method.
14
+ # ========================================================================= #
15
+ def self.cmdlet_select(i = 0)
16
+ i = i.to_i
17
+ if result?
18
+ set_result(result?[0, i])
19
+ end
20
+ return result?
21
+ end; self.instance_eval { alias select cmdlet_select } # === UniversalPipeHandler.select
22
+
23
+ end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This pipe-action will show the lines.
6
+ # =========================================================================== #
7
+ # require 'universal_pipe_handler/cmdlets/show_lines.rb'
8
+ # =========================================================================== #
9
+ module UniversalPipeHandler
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_show_lines
13
+ # ========================================================================= #
14
+ def self.cmdlet_show_lines(range)
15
+ range = range.to_s
16
+ if range.include? '-'
17
+ splitted = range.split '-'
18
+ first = splitted.first.to_i - 1
19
+ last = splitted.last.to_i - 1
20
+ range = Range.new(first, last)
21
+ range = range.to_a
22
+ end
23
+ new_result = []
24
+ result?.each_with_index { |_, index|
25
+ new_result << _ if range.include?(index.to_i)
26
+ }
27
+ set_result(new_result)
28
+ return result?
29
+ end; self.instance_eval { alias show_lines cmdlet_show_lines } # === UniversalPipeHandler.show_lines
30
+
31
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/shuffle.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_shuffle
11
+ # ========================================================================= #
12
+ def self.cmdlet_shuffle(i = result?)
13
+ set_result(result?.shuffle)
14
+ end; self.instance_eval { alias shuffle cmdlet_shuffle } # === UniversalPipeHandler.shuffle
15
+
16
+ end
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'universal_pipe_handler/cmdlets/shuffle.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ require 'csv'
10
+
11
+ # ========================================================================= #
12
+ # === UniversalPipeHandler.cmdlet_shuffle_csv
13
+ #
14
+ # Currently the assumption is that we will pass a .csv file to
15
+ # this method, which will then be reshuffled into different
16
+ # tab-entries.
17
+ # ========================================================================= #
18
+ def self.cmdlet_shuffle_csv(
19
+ arguments = result?
20
+ )
21
+ new_array = []
22
+ possible_csv_file = result?.first
23
+ # ======================================================================= #
24
+ # We can not use CSV.read because this will chop off '"' quotes.
25
+ # ======================================================================= #
26
+ if File.exist? possible_csv_file
27
+ possible_csv_file = CSV.read(possible_csv_file)
28
+ # ===================================================================== #
29
+ # When we have an ',' entry in a member then we know that this
30
+ # derived from a '"' quoted word.
31
+ # ===================================================================== #
32
+ possible_csv_file.map! {|line|
33
+ line.map! {|entry|
34
+ entry = '"'+entry+'"' if entry.include? ','
35
+ entry
36
+ }
37
+ line
38
+ }
39
+ end
40
+ splitted = arguments.split(',')
41
+ possible_csv_file.each {|line|
42
+ index_array = [*splitted].map(&:to_i)
43
+ # ===================================================================== #
44
+ # Deduct one from the index-array next.
45
+ # ===================================================================== #
46
+ index_array.map! {|entry|
47
+ entry -= 1
48
+ }
49
+ new_array << index_array.map {|index| line.at(index) }
50
+ }
51
+ set_result(new_array)
52
+ return result?
53
+ end; self.instance_eval { alias shuffle_csv cmdlet_shuffle_csv } # === UniversalPipeHandler.shuffle_csv
54
+
55
+ 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/size.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_size
11
+ # ========================================================================= #
12
+ def self.cmdlet_size(i = result?)
13
+ size = 0
14
+ i.each {|entry|
15
+ size += File.size(entry)
16
+ }
17
+ set_result(size)
18
+ return result?
19
+ end; self.instance_eval { alias size cmdlet_size } # === UniversalPipeHandler.size
20
+
21
+ 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/cmdlet_convert_to_mp3.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_sort_alphabetical
11
+ # ========================================================================= #
12
+ def self.cmdlet_sort_alphabetical(i = result?)
13
+ new_data = i.sort_by {|entry|
14
+ File.basename(entry).downcase # We sort only on the last part here.
15
+ }
16
+ set_result(new_data)
17
+ end; self.instance_eval { alias sort_alphabetical cmdlet_sort_alphabetical } # === UniversalPipeHandler.sort_alphabetical
18
+ self.instance_eval { alias action_sort_alphabetical cmdlet_sort_alphabetical } # === UniversalPipeHandler.action_sort_alphabetical
19
+
20
+ 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/sort_by_date.rb'
6
+ # =========================================================================== #
7
+ module UniversalPipeHandler
8
+
9
+ # ========================================================================= #
10
+ # === UniversalPipeHandler.cmdlet_sort_by_date
11
+ #
12
+ # The convention used here is:
13
+ #
14
+ # new files will appear on top
15
+ #
16
+ # ========================================================================= #
17
+ def self.cmdlet_sort_by_date(i = result?)
18
+ sorted = i.sort_by {|entry| File.atime(entry) }.reverse
19
+ set_result sorted
20
+ return result?
21
+ end; self.instance_eval { alias sort_by_date cmdlet_sort_by_date } # === UniversalPipeHandler.sort_by_date
22
+
23
+ end