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,300 @@
|
|
|
1
|
+
# =========================================================================== #
|
|
2
|
+
# This file lists which functions should be included or added into
|
|
3
|
+
# the PipeParadise project.
|
|
4
|
+
# =========================================================================== #
|
|
5
|
+
|
|
6
|
+
(1) add action:
|
|
7
|
+
|
|
8
|
+
exchange_character_in_filename (or another name)
|
|
9
|
+
|
|
10
|
+
assign file THIS_FILE | replace o with a
|
|
11
|
+
|
|
12
|
+
^^^ will result in faa.txt
|
|
13
|
+
|
|
14
|
+
---------------------------------------------------------------
|
|
15
|
+
(2) go through and see if we use many of my modern software
|
|
16
|
+
components already; also check if we can reshuffle .csv
|
|
17
|
+
files
|
|
18
|
+
|
|
19
|
+
shuffle_tab 5 6
|
|
20
|
+
^^^ should exchange these
|
|
21
|
+
---------------------------------------------------------------
|
|
22
|
+
(3) add this:
|
|
23
|
+
|
|
24
|
+
burn iso *pdf | xmessage done
|
|
25
|
+
|
|
26
|
+
# the above burns the pdf, and then when done, shows a
|
|
27
|
+
# message to the user.
|
|
28
|
+
---------------------------------------------------------------
|
|
29
|
+
(4) all action-requires should be bundled into a
|
|
30
|
+
single .rb file, so that we can avoid
|
|
31
|
+
requiring it more than once, like
|
|
32
|
+
file_duration
|
|
33
|
+
|
|
34
|
+
---------------------------------------------------------------
|
|
35
|
+
(5) continually look at
|
|
36
|
+
https://github.com/cantino/huginn
|
|
37
|
+
and learn from it
|
|
38
|
+
|
|
39
|
+
---------------------------------------------------------------
|
|
40
|
+
(6) cat $RUBY_TOOLS/return_random_image.rb | nl | colourize | nl
|
|
41
|
+
|
|
42
|
+
^^^ Irgendwas ist mit colourize falsch. Der output den man
|
|
43
|
+
bekommt, der scheint auf einmal keine Newlines mehr zu haben.
|
|
44
|
+
|
|
45
|
+
----------------------------------------------------------------------------------------------------
|
|
46
|
+
(7)
|
|
47
|
+
- assign foo.avi | add_audio blablabla/mp3 # <--- the same as above...
|
|
48
|
+
---------------------------------------------------------------
|
|
49
|
+
(8)
|
|
50
|
+
- assign foo.avi | convert to animated gif
|
|
51
|
+
|
|
52
|
+
^^^ should work. also | convert to image
|
|
53
|
+
somehow the ... command sucks.
|
|
54
|
+
|
|
55
|
+
-----------------------------------------------------------------------------------------------------
|
|
56
|
+
(11) read file bla | create foobar.rtf
|
|
57
|
+
|
|
58
|
+
^^^ this triggers the binding of ruby rtf stuff.
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
-----------------------------------------------------------------------------------------------------
|
|
62
|
+
(11) any avi | increase audio delay 3ms
|
|
63
|
+
|
|
64
|
+
assign avi | decrease audio delay 3ms
|
|
65
|
+
|
|
66
|
+
assign any avi | increase audio delay 3ms
|
|
67
|
+
|
|
68
|
+
^^^ use any avi, then increase its audio delay by 3 ms.
|
|
69
|
+
|
|
70
|
+
-----------------------------------------------------------------------------------------------------
|
|
71
|
+
(11) assign bloodsport.avi | duration 155 - 255 | extract_audio_to /tmp/stored_here.mp3
|
|
72
|
+
^^^ This is in seconds
|
|
73
|
+
|
|
74
|
+
Das hier soll das bloodsport avi assigned, von der sekunden zahl hinspringen und
|
|
75
|
+
den audio teil rausholen. Synonym sollte auch dies hier gehen:
|
|
76
|
+
|
|
77
|
+
assign bloodsport.avi | at 00:45:02 | for 20 seconds | extract_audio | save to /tmp/stored_here.mp3
|
|
78
|
+
|
|
79
|
+
Das macht das selbe. UND danach das ganze natürlich dokumentieren.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
-----------------------------------------------------------------------------------------------------
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
read this_file | starts_with? X
|
|
87
|
+
|
|
88
|
+
read this_file | starts_with? pqr
|
|
89
|
+
|
|
90
|
+
cat LINUX.cgi | egrep '^A' | sort | uniq | wc -l
|
|
91
|
+
|
|
92
|
+
read file foo.txt | starts_with? X | sort | uniq | word_count # print longest line
|
|
93
|
+
|
|
94
|
+
This counts the number of unique lines in the text file that
|
|
95
|
+
begin with X. The great thing is that it's quite readable.
|
|
96
|
+
You can read the data left to right.
|
|
97
|
+
|
|
98
|
+
alias egrep starts_with?
|
|
99
|
+
|
|
100
|
+
IMPLEMENT:
|
|
101
|
+
starts_with?
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
-----------------------------------------------------------------------------------------------------
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
match_regex
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
- Video und Audio Processing sollte funktionieren wie mit Avisynth.
|
|
112
|
+
|
|
113
|
+
open foo.avi | increase audio 2% | duration 5%..50% | crop video 300x150 | filter huffyman | save_to /x.avi | upload_to default
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
find_all "hier kommt die condition..."
|
|
120
|
+
find_all scripts
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
- find_all "hier kommt die condition..." | remove <--- die wird reingepiped.
|
|
124
|
+
^^^ das hier wurde schon realisiert ^^^ das hier verstehe ich nicht ... was will ich da entfernen???
|
|
125
|
+
und funzt mehr oder weniger.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
- assign audio_song | cut 30% # or cut 0-30, 30% defaults from start to 30% of lenght
|
|
130
|
+
- assign audio_song | cut -30% # reverse.
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
- we also want to have the ability to use system() for unix things when the command was not registered.
|
|
134
|
+
but perhaps make this a toggleable setting.
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
- automatically create an animated gif somehow... with several images
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
- Eine lose Idee: Wenn eine action nichts gscheites rausgibt ... das dem user sagen
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
- grep # to grep for a specific string.
|
|
146
|
+
|
|
147
|
+
cat foo | grep blablabla
|
|
148
|
+
|
|
149
|
+
-> alias search_for, searchfor, sfor
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
- | repackage to squashfs
|
|
155
|
+
^^^ this shit did not work!
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
- ein allgemeiner fokus is das wir image-dateien manipulieren können, z.bsp
|
|
160
|
+
|
|
161
|
+
rasterize (sollte ein raster machen auf ein image)
|
|
162
|
+
rasterize: -> image_rasterize
|
|
163
|
+
|
|
164
|
+
Das scheint ziemlich schwer zu sein...
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
>>> [1, 2, 3, 4, 5] | add
|
|
171
|
+
15
|
|
172
|
+
|
|
173
|
+
>>> [5, 4, 3, 2, 1] | sort
|
|
174
|
+
[1, 2, 3, 4, 5]
|
|
175
|
+
|
|
176
|
+
[1, 2, 3, 4, 5]
|
|
177
|
+
|
|
178
|
+
The base class of Pipe is kept simple (7 lines of python) and
|
|
179
|
+
is usable as a decorator permitting you to create new
|
|
180
|
+
'pipeable' functions easily. The module provides ~30
|
|
181
|
+
prepared pipes functions like 'where', 'group_by',
|
|
182
|
+
'sort', 'take_while'
|
|
183
|
+
A pipeable
|
|
184
|
+
function takes an iterable (tuple, list, generator)
|
|
185
|
+
and yields to be itself an iterator, so
|
|
186
|
+
pipeable function can be piped together.
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
- [1, 2, 3, 4, 5] | select even
|
|
191
|
+
- [1, 2, 3, 4, 5] | select odd
|
|
192
|
+
select all even or odd numbers.
|
|
193
|
+
without []
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
[1, 2, 3, 4, 5] | add
|
|
197
|
+
[1, 2, 3, 4, 5] . add
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
---------------------------------------------------------------
|
|
208
|
+
|
|
209
|
+
master_pipe.assign_data = blablabla
|
|
210
|
+
|
|
211
|
+
We need a way to assign data before the master pipe starts
|
|
212
|
+
its actions. This is the default action! First action always!
|
|
213
|
+
|
|
214
|
+
assign data |
|
|
215
|
+
|
|
216
|
+
will always be the first thing that happens!!!
|
|
217
|
+
|
|
218
|
+
Can be nil.
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
---------------------------------------------------------------
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
flip left right (flip a video left-right)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
---------------------------------------------------------------
|
|
228
|
+
|
|
229
|
+
- find . -name '*.rb' | xargs wc -l
|
|
230
|
+
|
|
231
|
+
^^^ das muss auch gehen...
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
---------------------------------------------------------------
|
|
238
|
+
|
|
239
|
+
- implement:
|
|
240
|
+
|
|
241
|
+
"upload to youtube"
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
---------------------------------------------------------------
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
http://www.sean-crist.com/personal/pages/visual_pipes/
|
|
249
|
+
|
|
250
|
+
^^^ ensure that the master pipe can use this too.
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
---------------------------------------------------------------
|
|
254
|
+
Austesten ob "married with bloopers" rausschneiden kann.
|
|
255
|
+
Dazu brauchen wir eine Testdatei, bla.avi.
|
|
256
|
+
|
|
257
|
+
assign bla.avi | video_cut 30s | save #APPEND#_modified
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
assign bla.avi | video_cut 20-1630s | save #APPEND#_modified
|
|
261
|
+
|
|
262
|
+
Beides sollte funktionieren.
|
|
263
|
+
|
|
264
|
+
---------------------------------------------------------------
|
|
265
|
+
|
|
266
|
+
die conversions aus dem multimedia_project hinzufügen
|
|
267
|
+
|
|
268
|
+
---------------------------------------------------------------
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
<bradland> shevy: regarding audio, when removing duration,
|
|
272
|
+
trucate is a good term. when altering amplitude, attenuate/amplify would be the terms used.
|
|
273
|
+
|
|
274
|
+
<bradland> cool
|
|
275
|
+
<bradland> when designing your API, think of duration as its own entity
|
|
276
|
+
<bradland> most editing is done using markers, referred to as in & out
|
|
277
|
+
<bradland> once markers ar eset, you perform an operation
|
|
278
|
+
<bradland> it's a nice set of abstractions for designing and api
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
- add a way to install stuff
|
|
282
|
+
|
|
283
|
+
---------------------------------------------------------------
|
|
284
|
+
|
|
285
|
+
merge video #
|
|
286
|
+
We need a simple way to append new videos to an existing
|
|
287
|
+
video, so that we can chain together different videos,
|
|
288
|
+
automatically, without having to worry about encoding
|
|
289
|
+
and such.
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
---------------------------------------------------------------
|
|
293
|
+
|
|
294
|
+
- enable or verify that this works:
|
|
295
|
+
|
|
296
|
+
download https://www.youtube.com/watch?v=UZr75lLiE6k
|
|
297
|
+
we will use youtube-dl for now.
|
|
298
|
+
|
|
299
|
+
- add rblanks as well to the list of commands that can
|
|
300
|
+
be done.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# Encoding: UTF-8
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
# =========================================================================== #
|
|
5
|
+
# === UniversalPipeHandler::Base
|
|
6
|
+
#
|
|
7
|
+
# Usage example:
|
|
8
|
+
#
|
|
9
|
+
# UniversalPipeHandler::Base.new(ARGV)
|
|
10
|
+
#
|
|
11
|
+
# =========================================================================== #
|
|
12
|
+
# require 'universal_pipe_handler/base/base.rb'
|
|
13
|
+
# < Base
|
|
14
|
+
# =========================================================================== #
|
|
15
|
+
module UniversalPipeHandler
|
|
16
|
+
|
|
17
|
+
class Base # === UniversalPipeHandler::Base
|
|
18
|
+
|
|
19
|
+
require 'universal_pipe_handler/colours/colours.rb' # Mandatory.
|
|
20
|
+
include Colours
|
|
21
|
+
|
|
22
|
+
require 'fileutils'
|
|
23
|
+
|
|
24
|
+
require 'universal_pipe_handler/toplevel_methods/all_actions.rb'
|
|
25
|
+
|
|
26
|
+
# ========================================================================= #
|
|
27
|
+
# === NAMESPACE
|
|
28
|
+
# ========================================================================= #
|
|
29
|
+
NAMESPACE = inspect
|
|
30
|
+
|
|
31
|
+
# ========================================================================= #
|
|
32
|
+
# === initialize
|
|
33
|
+
# ========================================================================= #
|
|
34
|
+
def initialize(
|
|
35
|
+
commandline_arguments = nil,
|
|
36
|
+
run_already = true
|
|
37
|
+
)
|
|
38
|
+
reset
|
|
39
|
+
set_commandline_arguments(
|
|
40
|
+
commandline_arguments
|
|
41
|
+
)
|
|
42
|
+
run if run_already
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# ========================================================================= #
|
|
46
|
+
# === reset (reset tag)
|
|
47
|
+
# ========================================================================= #
|
|
48
|
+
def reset
|
|
49
|
+
# ======================================================================= #
|
|
50
|
+
# === @namespace
|
|
51
|
+
# ======================================================================= #
|
|
52
|
+
@namespace = NAMESPACE
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ========================================================================= #
|
|
56
|
+
# === set_commandline_arguments
|
|
57
|
+
# ========================================================================= #
|
|
58
|
+
def set_commandline_arguments(i = '')
|
|
59
|
+
i = [i].flatten.compact
|
|
60
|
+
@commandline_arguments = i
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# ========================================================================= #
|
|
64
|
+
# === commandline_arguments?
|
|
65
|
+
# ========================================================================= #
|
|
66
|
+
def commandline_arguments?
|
|
67
|
+
@commandline_arguments
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# ========================================================================= #
|
|
71
|
+
# === first_argument?
|
|
72
|
+
# ========================================================================= #
|
|
73
|
+
def first_argument?
|
|
74
|
+
@commandline_arguments.first
|
|
75
|
+
end; alias first? first_argument? # === first?
|
|
76
|
+
|
|
77
|
+
# ========================================================================= #
|
|
78
|
+
# === allowed_actions?
|
|
79
|
+
#
|
|
80
|
+
# Return every allowed action. This will not be needed by every
|
|
81
|
+
# subclass, so perhaps this may have to be changed at one point
|
|
82
|
+
# in time.
|
|
83
|
+
# ========================================================================= #
|
|
84
|
+
def allowed_actions?
|
|
85
|
+
::UniversalPipeHandler.all_actions?
|
|
86
|
+
end; alias registered_actions? allowed_actions? # === registered_actions?
|
|
87
|
+
|
|
88
|
+
# ========================================================================= #
|
|
89
|
+
# === copy
|
|
90
|
+
# ========================================================================= #
|
|
91
|
+
def copy(from, to)
|
|
92
|
+
FileUtils.copy(from, to)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# ========================================================================== #
|
|
96
|
+
# === remove_quotes
|
|
97
|
+
# ========================================================================== #
|
|
98
|
+
def remove_quotes(i)
|
|
99
|
+
i.delete('"')
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# ========================================================================= #
|
|
103
|
+
# === mkdir
|
|
104
|
+
# ========================================================================= #
|
|
105
|
+
def mkdir(i)
|
|
106
|
+
FileUtils.mkdir_p(i)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# ========================================================================= #
|
|
110
|
+
# === chdir
|
|
111
|
+
# ========================================================================= #
|
|
112
|
+
def chdir(i)
|
|
113
|
+
FileUtils.chdir(i)
|
|
114
|
+
end; alias cd chdir # === cd
|
|
115
|
+
|
|
116
|
+
# ========================================================================= #
|
|
117
|
+
# === register_sigint
|
|
118
|
+
# ========================================================================= #
|
|
119
|
+
def register_sigint
|
|
120
|
+
Signal.trap('SIGINT') { exit }
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# ========================================================================= #
|
|
124
|
+
# === run (run tag)
|
|
125
|
+
# ========================================================================= #
|
|
126
|
+
def run
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# ========================================================================= #
|
|
130
|
+
# === return_pwd
|
|
131
|
+
# ========================================================================= #
|
|
132
|
+
def return_pwd
|
|
133
|
+
"#{Dir.pwd}/".squeeze('')
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# ========================================================================= #
|
|
137
|
+
# === UniversalPipeHandler::Base[]
|
|
138
|
+
# ========================================================================= #
|
|
139
|
+
def self.[](i = '')
|
|
140
|
+
new(i)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
end; end
|
|
144
|
+
|
|
145
|
+
if __FILE__ == $PROGRAM_NAME
|
|
146
|
+
UniversalPipeHandler::Base.new(ARGV)
|
|
147
|
+
end # base.rb
|