universal_pipe_handler 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +461 -0
- data/doc/README.gen +417 -0
- data/doc/todo/todo_for_the_universal_pipe_handler_project.md +300 -0
- data/img/UNIVERSAL_PIPE_HANDLER_LOGO.jpg +0 -0
- data/img/pipe_paradise.png +0 -0
- data/lib/universal_pipe_handler/base/base.rb +147 -0
- data/lib/universal_pipe_handler/cmdlet/cmdlet.rb +287 -0
- data/lib/universal_pipe_handler/cmdlets/add.rb +15 -0
- data/lib/universal_pipe_handler/cmdlets/add_audio.rb +22 -0
- data/lib/universal_pipe_handler/cmdlets/all.rb +37 -0
- data/lib/universal_pipe_handler/cmdlets/any.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/ascii_video.rb +30 -0
- data/lib/universal_pipe_handler/cmdlets/assign.rb +24 -0
- data/lib/universal_pipe_handler/cmdlets/capture_screen.rb +46 -0
- data/lib/universal_pipe_handler/cmdlets/colourize.rb +35 -0
- data/lib/universal_pipe_handler/cmdlets/convert_to.rb +21 -0
- data/lib/universal_pipe_handler/cmdlets/convert_to_images.rb +17 -0
- data/lib/universal_pipe_handler/cmdlets/convert_to_mp3.rb +28 -0
- data/lib/universal_pipe_handler/cmdlets/convert_to_wav.rb +17 -0
- data/lib/universal_pipe_handler/cmdlets/copy_directories.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/count_character.rb +31 -0
- data/lib/universal_pipe_handler/cmdlets/count_longest_row.rb +21 -0
- data/lib/universal_pipe_handler/cmdlets/crop.rb +26 -0
- data/lib/universal_pipe_handler/cmdlets/cut.rb +101 -0
- data/lib/universal_pipe_handler/cmdlets/days.rb +41 -0
- data/lib/universal_pipe_handler/cmdlets/decolourize.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/download.rb +30 -0
- data/lib/universal_pipe_handler/cmdlets/download_torrent.rb +17 -0
- data/lib/universal_pipe_handler/cmdlets/duration.rb +34 -0
- data/lib/universal_pipe_handler/cmdlets/extract.rb +27 -0
- data/lib/universal_pipe_handler/cmdlets/extract_all.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/extract_audio.rb +30 -0
- data/lib/universal_pipe_handler/cmdlets/extract_video.rb +18 -0
- data/lib/universal_pipe_handler/cmdlets/find_all.rb +40 -0
- data/lib/universal_pipe_handler/cmdlets/generate_random_video.rb +29 -0
- data/lib/universal_pipe_handler/cmdlets/generate_string.rb +27 -0
- data/lib/universal_pipe_handler/cmdlets/get_all_audio_files.rb +33 -0
- data/lib/universal_pipe_handler/cmdlets/get_all_files.rb +61 -0
- data/lib/universal_pipe_handler/cmdlets/get_all_images.rb +47 -0
- data/lib/universal_pipe_handler/cmdlets/get_all_images_including_subdirs.rb +26 -0
- data/lib/universal_pipe_handler/cmdlets/get_all_video_files.rb +34 -0
- data/lib/universal_pipe_handler/cmdlets/get_last_characters.rb +24 -0
- data/lib/universal_pipe_handler/cmdlets/help.rb +36 -0
- data/lib/universal_pipe_handler/cmdlets/identify.rb +29 -0
- data/lib/universal_pipe_handler/cmdlets/increase_audio.rb +26 -0
- data/lib/universal_pipe_handler/cmdlets/install.rb +32 -0
- data/lib/universal_pipe_handler/cmdlets/match_regex.rb +24 -0
- data/lib/universal_pipe_handler/cmdlets/n_directories.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/n_files.rb +20 -0
- data/lib/universal_pipe_handler/cmdlets/n_words.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/number_lines.rb +34 -0
- data/lib/universal_pipe_handler/cmdlets/open_in_browser.rb +40 -0
- data/lib/universal_pipe_handler/cmdlets/pad_left.rb +20 -0
- data/lib/universal_pipe_handler/cmdlets/pad_right.rb +20 -0
- data/lib/universal_pipe_handler/cmdlets/play.rb +18 -0
- data/lib/universal_pipe_handler/cmdlets/position.rb +21 -0
- data/lib/universal_pipe_handler/cmdlets/processes.rb +18 -0
- data/lib/universal_pipe_handler/cmdlets/random.rb +21 -0
- data/lib/universal_pipe_handler/cmdlets/random_video.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/read_file.rb +44 -0
- data/lib/universal_pipe_handler/cmdlets/read_line.rb +31 -0
- data/lib/universal_pipe_handler/cmdlets/read_n_lines.rb +38 -0
- data/lib/universal_pipe_handler/cmdlets/read_n_lines_inverted.rb +36 -0
- data/lib/universal_pipe_handler/cmdlets/remove_audio.rb +22 -0
- data/lib/universal_pipe_handler/cmdlets/remove_comments.rb +26 -0
- data/lib/universal_pipe_handler/cmdlets/remove_directories.rb +29 -0
- data/lib/universal_pipe_handler/cmdlets/remove_html.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/remove_newlines.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/remove_numbers.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/repackage_to.rb +27 -0
- data/lib/universal_pipe_handler/cmdlets/replace_underscores.rb +29 -0
- data/lib/universal_pipe_handler/cmdlets/resize.rb +39 -0
- data/lib/universal_pipe_handler/cmdlets/resize_image.rb +45 -0
- data/lib/universal_pipe_handler/cmdlets/reverse.rb +22 -0
- data/lib/universal_pipe_handler/cmdlets/screenshot.rb +41 -0
- data/lib/universal_pipe_handler/cmdlets/search_torrent.rb +24 -0
- data/lib/universal_pipe_handler/cmdlets/seconds.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/select.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/show_lines.rb +31 -0
- data/lib/universal_pipe_handler/cmdlets/shuffle.rb +16 -0
- data/lib/universal_pipe_handler/cmdlets/shuffle_csv.rb +55 -0
- data/lib/universal_pipe_handler/cmdlets/size.rb +21 -0
- data/lib/universal_pipe_handler/cmdlets/sort_alphabetical.rb +20 -0
- data/lib/universal_pipe_handler/cmdlets/sort_by_date.rb +23 -0
- data/lib/universal_pipe_handler/cmdlets/starts_with.rb +25 -0
- data/lib/universal_pipe_handler/cmdlets/stat_file.rb +61 -0
- data/lib/universal_pipe_handler/cmdlets/to_ascii.rb +38 -0
- data/lib/universal_pipe_handler/cmdlets/to_camel_case.rb +38 -0
- data/lib/universal_pipe_handler/cmdlets/to_dna.rb +31 -0
- data/lib/universal_pipe_handler/cmdlets/to_movie.rb +16 -0
- data/lib/universal_pipe_handler/cmdlets/to_pdf.rb +58 -0
- data/lib/universal_pipe_handler/cmdlets/translate.rb +36 -0
- data/lib/universal_pipe_handler/cmdlets/upload_to.rb +29 -0
- data/lib/universal_pipe_handler/cmdlets/word_count.rb +39 -0
- data/lib/universal_pipe_handler/cmdlets/word_wrap.rb +26 -0
- data/lib/universal_pipe_handler/cmdlets/write_to.rb +51 -0
- data/lib/universal_pipe_handler/cmdlets/years.rb +30 -0
- data/lib/universal_pipe_handler/cmdlets_handler/cmdlets_handler.rb +193 -0
- data/lib/universal_pipe_handler/colours/colourize.rb +112 -0
- data/lib/universal_pipe_handler/colours/colours.rb +54 -0
- data/lib/universal_pipe_handler/configuration/configuration.rb +18 -0
- data/lib/universal_pipe_handler/constants/constants.rb +201 -0
- data/lib/universal_pipe_handler/dataset/dataset.rb +14 -0
- data/lib/universal_pipe_handler/project/project.rb +36 -0
- data/lib/universal_pipe_handler/requires/do_require_the_individual_cmdlet_files.rb +21 -0
- data/lib/universal_pipe_handler/requires/require_the_universal_pipe_handler.rb +14 -0
- data/lib/universal_pipe_handler/shell/shell.rb +256 -0
- data/lib/universal_pipe_handler/toplevel_methods/all_actions.rb +48 -0
- data/lib/universal_pipe_handler/toplevel_methods/cmdlet_directory.rb +22 -0
- data/lib/universal_pipe_handler/toplevel_methods/e.rb +16 -0
- data/lib/universal_pipe_handler/toplevel_methods/misc.rb +54 -0
- data/lib/universal_pipe_handler/toplevel_methods/rds.rb +18 -0
- data/lib/universal_pipe_handler/toplevel_methods/token.rb +18 -0
- data/lib/universal_pipe_handler/version/version.rb +19 -0
- data/lib/universal_pipe_handler/yaml/aliases_to_cmdlets.yml +250 -0
- data/lib/universal_pipe_handler/yaml/allowed_cmdlets.yml +118 -0
- data/lib/universal_pipe_handler/yaml/predefined_methods.yml +15 -0
- data/lib/universal_pipe_handler.rb +5 -0
- data/test/testing_the_universal_pipe_handler.rb +65 -0
- data/test/this_file +46 -0
- data/universal_pipe_handler.gemspec +80 -0
- 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
|