Class: RBT::Action::RemoveOutdatedArchives
- Inherits:
-
RBT::Action
show all
- Defined in:
- lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb
Overview
RBT::Action::RemoveOutdatedArchives
Constant Summary
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Class Method Summary
collapse
-
.[](i = ARGV) ⇒ Object
# === RBT::Action::RemoveOutdatedArchives[] ========================================================================= #.
Instance Method Summary
collapse
#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_options, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no
Constructor Details
#initialize(i = ARGV, run_already = true, &block) ⇒ RemoveOutdatedArchives
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 48
def initialize(
i = ARGV,
run_already = true,
&block
)
reset
set_commandline_arguments(i)
case run_already
when :do_not_run_yet
run_already = false
end
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
RBT::Action::RemoveOutdatedArchives[]
#
354
355
356
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 354
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#add(i) ⇒ Object
#
add (add tag)
This method will simply append (aka add) to the main Array of this class.
#
246
247
248
249
250
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 246
def add(i)
@array_work_on_these_programs << i
@array_work_on_these_programs.flatten!
@array_work_on_these_programs.compact!
end
|
99
100
101
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 99
def format_type?
@look_only_for_these_archive_types
end
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 106
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
if i.start_with?(':') or i.is_a?(Symbol) or i.start_with?('--')
if i.is_a?(String) and i.include?(':')
i = i.dup if i.frozen?
i.delete!(':')
end
case i when /^-?-?all(_|-)?programs=(\d{1,2})$/i
array = []
n_programs_as_threshold = $2.to_i
available_programs?.each {|entry|
_ = Dir[src_dir?+entry+'/*']
if _.size >= n_programs_as_threshold
array << entry
end
}
add(array)
when /^-?-?all(_|-)?programs$/i,
:all_programs
add available_programs?
when /^-?-?python(_|-)?addons$/i,
:python_addons,
/^-?-?python$/i
add RBT.return_python_addons
when /^-?-?xfce(_|-)?desktop$/i,
:xfce_desktop,
/^-?-?xfce$/i
add RBT.return_xfce_desktop_components
when /^-?-?mate(_|-)?desktop$/i,
:mate_desktop,
/^-?-?mate$/i
add RBT.return_mate_desktop_components
when /^-?-?kde(_|-)?foundation$/i,
:kde_foundation,
:kde5_foundation
add RBT.return_kde5_foundation
when /^-?-?kde(_|-)?plasma$/i,
:kde_plasma
add RBT.return_kde5_plasma
when /^-?-?xorg(_|-)?apps$/i,
:xorg_apps
add RBT.return_xorg_apps
when /^-?-?kde(_|-)?applications$/i,
:kde_applications,
/^-?-?kde(_|-)?apps$/i,
:kde_apps
add RBT.return_kde5_applications
end
end
end
end
|
#notify_the_user_as_to_how_many_files_were_removed ⇒ Object
#
notify_the_user_as_to_how_many_files_were_removed
#
255
256
257
258
259
260
261
262
263
264
265
266
267
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 255
def notify_the_user_as_to_how_many_files_were_removed
if @n_files_were_removed > 0
opne 'A total of '+sfancy(@n_files_were_removed.to_s)+
rev+' files were removed.'
opne "#{rev}The total filesize of these archives was: "+
sfancy(@total_file_size.to_s)+
tomato('B')+' '+
sfancy(
(@total_file_size.to_f / (1000.0 * 1000.0)).round(1)
)+
tomato('MB')
end
end
|
#purge_these_entries(i) ⇒ Object
#
purge_these_entries (purge tag)
#
329
330
331
332
333
334
335
336
337
338
339
340
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 329
def purge_these_entries(i)
if i.is_a? Array
i.flatten.each {|entry| purge_these_entries(entry) }
else
if File.file?(i) and i.end_with?(format_type?)
opne "#{rev}The entry `#{sfile(i)}#{rev}` will be removed next."
@n_files_were_removed += 1
@total_file_size += File.size(i)
remove_file(i)
end
end
end
|
#reset ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 68
def reset
super()
infer_the_namespace
@look_only_for_these_archive_types = '.tar.xz'
@array_work_on_these_programs = []
@n_files_were_removed = 0
@total_file_size = 0
end
|
#run ⇒ Object
345
346
347
348
349
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 345
def run
work_through_the_programs
notify_the_user_as_to_how_many_files_were_removed
end
|
#work_on_which_programs? ⇒ Boolean
#
work_on_which_programs?
#
272
273
274
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 272
def work_on_which_programs?
@array_work_on_these_programs
end
|
#work_through_the_programs(i = work_on_which_programs?
) ⇒ Object
#
work_through_the_programs
This is the method that will iterate over all available program.
#
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
|
# File 'lib/rbt/actions/individual_actions/remove_outdated_archives/remove_outdated_archives.rb', line 281
def work_through_the_programs(
i = work_on_which_programs?
)
if i.empty?
opne "#{rev}No program was given to remove its outdated archive(s)."
else
i.each {|this_program|
this_directory = "#{src_dir?}#{this_program}/"
opne "#{rev}Working on the directory #{sdir(this_directory)} #{rev}next:"
use_this_regex = /\d{1,8}\.?\d{0,12}\.?\d{0,12}/ files_in_that_directory = Dir[
this_directory+'*'+@look_only_for_these_archive_types
].sort_by {|entry|
entry = remove_archive_at_the_end(entry)
= entry.scan(use_this_regex).flatten
if .respond_to?(:first)
= .first
end
Gem::Version.new() }.reverse
highest_entry = files_in_that_directory[0] array_of_entries_that_are_to_be_purged = files_in_that_directory.reject {|entry|
entry.include? highest_entry
}
purge_these_entries(array_of_entries_that_are_to_be_purged)
}
end
end
|