Class: RBT::Cookbooks::ScanForMissingLastUpdateEntries
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb
Overview
Constant Summary
collapse
- SHALL_WE_EXIT_WHEN_ENCOUNTERING_PROBLEMS =
#
SHALL_WE_EXIT_WHEN_ENCOUNTERING_PROBLEMS
#
true
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Instance Method Summary
collapse
Methods inherited from Base
#cat, #cd_back_to_the_current_working_directory, #consider_reporting_how_many_programs_are_registered, #cookbook_files?, #copy_recursively, #delete_code_of_conduct?, #determine_appdir_prefix_from_this_input, #directory_validation?, #do_not_show_names, #fast_return_file_size_of_this_program, #file_last_symlinked_program?, #file_programs_version_url, #gem_version, #is_a_64bit_system?, #is_ccache_available?, #is_porg_available?, #is_this_binary_registered?, #is_this_program_included?, #make_command?, #make_install_command?, #new_cookbook_instance_for, #program_exists?, #publish_list_of_all_programs_version, #rcp, registered_binaries?, #remove_symlink, #rename_kde_konsole_tab, #repackage, #report_n_programs, #report_working_directory, #return_compile_time_statistics, #return_n_random_characters, #return_version_of_this_program, #run_make_then_make_install, #sanitize_url1_entry, #set_source_directory, #show_overview_over_available_utility_scripts, #symlink_all_files_from_this_directory_to_that_directory, #system_tags?, #upload_list_of_all_programs_version, #use_yaml_database_for_tags?, #warn_and_exit, #wget
#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
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 34
def initialize(
i = nil,
run_already = true
)
register_sigint
reset
set_input(
i
)
run if run_already
end
|
Instance Method Details
#backup_this_file(i) ⇒ Object
#
backup_this_file
This will store into /Depot/Temp/BackupForCookbooks/
#
174
175
176
177
178
179
180
181
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 174
def backup_this_file(i)
from_here = individual_cookbooks_directory?+File.basename(i)
_ = rbt_log_dir?+'BackupForCookbooks/'
mkdir(_) unless Dir.exist? _
to_there = _+File.basename(i)
opne 'We will backup the file '+sfile(i)+' to `'+sfile(to_there)+'`.'
copy_file(from_here, to_there)
end
|
#do_scan ⇒ Object
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
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 186
def do_scan
all_programs?.each {|program|
program.downcase!
_ = return_location_to_this_programs_yaml_file(program)
if File.exist? _ begin
dataset = YAML.load_file(_)
rescue ArgumentError => error
e 'An ArgumentError happened for the program `'+
sfancy(program.to_s)+'`.'
pp error
e 'Please fix this.'
exit
end
if dataset.nil?
e 'Some problem was found for the file '+sfile(_)+'.'
end
program = program.to_s
if program.end_with? '.yml'
program.sub!(/\.yml$/,'')
end
last_update = dataset[program] if last_update
if last_update.has_key? 'last_update'
else
if @input.nil?
opne "#{rev}A problem with #{sfancy(program.to_s)}#{rev}."
opne rev+'Showcasing the data-structure:'
pp last_update
pp last_update.class
end
if @input
opnn unless @input.include? 'besilent'
end
_ = File.basename(_)
@array_with_the_results << _
display_this_string = sfancy(_)
if @input
unless @input.include? 'besilent'
display_this_string << ' has no last_update entry.'
end
end
e display_this_string
if fix_missing_entries?
fix_this_missing_entry(_) end
end
else
opne rev+'Something went wrong for `'+simp(program.to_s)+rev+'`.'
opne rev+'We could not find an entry called '+sfancy('last_update:')
opne rev+'We will display the faulty dataset next.'
cliner { pp dataset }
if SHALL_WE_EXIT_WHEN_ENCOUNTERING_PROBLEMS
opne 'Exiting now, as requested by the constant'
opnn; efancy 'SHALL_WE_EXIT_WHEN_ENCOUNTERING_PROBLEMS.'
exit
end
end
else
opne "The file at #{sfile(_)} does not exist. Exiting now."
exit
end
}
end
|
#fix_missing_entries? ⇒ Boolean
143
144
145
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 143
def fix_missing_entries?
@fix_missing_entries
end
|
#fix_this_missing_entry(i) ⇒ Object
#
fix_this_missing_entry
Use this method to fix a wrongful entry among the individual cookbook entries.
#
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 150
def (
i = @input
)
case i when /^-?-?help?$/i,
'he'
show_help
exit
when /FIX/,/-?-?fix/ @fix_missing_entries = true
end
end
|
#report_how_many_programs_are_missing_the_last_update_entry ⇒ Object
#
report_how_many_programs_are_missing_the_last_update_entry
#
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 88
def report_how_many_programs_are_missing_the_last_update_entry
opne "We have a total of #{sfancy(results?.size.to_s)}"\
" #{rev}programs without a #{swarn('last_update: entry')}."
if results?.size.to_i == 0
opne 'Excellent! That means that all cookbook files are valid,'
opne rev+"in regards to the #{sfancy('last_update tag')}#{rev}. "+
gold(return_cheering_person)
e
e rev+'The directory that was checked for this was the following one:'
e
e " #{sdir(individual_cookbooks_directory?)}"
e
end
end
|
#reset ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 49
def reset
super()
infer_the_namespace
@array_with_the_results = []
@fix_missing_entries = false
end
|
#results? ⇒ Boolean
106
107
108
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 106
def results?
@array_with_the_results
end
|
#return_proper_time ⇒ Object
#
return_proper_time
This will return a string such as:
"Apr 2014"
#
118
119
120
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 118
def return_proper_time
Date::MONTHNAMES[Date.today.month]+Time.now.strftime(' %Y')
end
|
#run ⇒ Object
271
272
273
274
275
276
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 271
def run
do_scan report_how_many_programs_are_missing_the_last_update_entry try_to_show_problematic_programs
end
|
67
68
69
70
71
72
73
74
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 67
def set_input(i = '')
i = i.first if i.is_a? Array
if i
i = i.to_s.dup
i = i.delete('_')
end
@input = i
end
|
#show_help ⇒ Object
79
80
81
82
83
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 79
def show_help e
opnn; ' FIX # Use this to fix wrongful entries'
e
end
|
#try_to_show_problematic_programs ⇒ Object
#
try_to_show_problematic_programs
#
258
259
260
261
262
263
264
265
266
|
# File 'lib/rbt/checks_and_validations/scan_for_missing_last_update_entries.rb', line 258
def try_to_show_problematic_programs
_ = results?
unless _.empty?
_.each {|this_program|
opne "#{rev}This program has a problematic last_entry: "\
"#{sfancy(this_program)}"
}
end
end
|