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.
- 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
|