Class: RBT::CheckForInvalidCurrentSymlinks
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb
Overview
RBT::CheckForInvalidCurrentSymlinks
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::CheckForInvalidCurrentSymlinks[] ========================================================================= #.
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_arguments, #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_meson_installed?, #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_directory_was_found_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_the_first_commandline_argument, #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
28
29
30
31
32
33
34
35
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 28
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
RBT::CheckForInvalidCurrentSymlinks[]
#
210
211
212
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 210
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#autocorrect_erroneous_entries ⇒ Object
#
autocorrect_erroneous_entries
#
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
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 115
def autocorrect_erroneous_entries
_ = main_array?
unless _.empty?
_.each {|entry|
opne "Next autocorrecting `#{sfancy(entry)}`."
dirname = File.dirname(entry)
possible_targets = Dir[dirname+'/*'].select {|line|
File.basename(line) =~ /^\d+/
}.sort_by {|line|
File.basename(line)
}.reverse
this_target = possible_targets.first
if File.directory? entry
remove_directory(entry)
end
old_target = this_target
new_target = entry if File.exist? old_target
symlink(old_target, new_target)
else
opnn; no_target_exists_at(old_target)
end
}
end
end
|
#discover_which_entries_are_not_symlinks ⇒ Object
Also known as:
discover_stuff
#
discover_which_entries_are_not_symlinks
This will fill up the Array @array_these_entries_are_not_symlinks.
Note that this method will NOT report anything - look at the report method instead if you require output from this class.
#
181
182
183
184
185
186
187
188
189
190
191
192
193
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 181
def discover_which_entries_are_not_symlinks
_ = programs_directory?
array_all_programs = Dir["#{_}*"].sort
array_all_programs.each {|entry|
_ = rds(entry+'/Current')
if File.exist? _
is_it_a_symlink = File.symlink?(_)
unless is_it_a_symlink
@array_these_entries_are_not_symlinks << _
end
end
}
end
|
72
73
74
75
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 72
def inform_the_user_what_can_be_done_about_incorrect_entries
opne "You can correct this by passing "\
"#{orange('--autocorrect')} to this class."
end
|
65
66
67
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 65
def input?
@input
end
|
#main_array? ⇒ Boolean
108
109
110
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 108
def main_array?
@array_these_entries_are_not_symlinks
end
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 80
def (i)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i
when /^-?-?help$/i
opne 'Right now only '+steelblue('--autocorrect')+
' exists as an option.'
opne 'Alternatively, do not pass any argument to this class.'
exit
when /^-?-?autocorrect/
autocorrect_erroneous_entries
exit
end
end
end
|
#notify_the_user_that_everything_appears_to_be_fine ⇒ Object
#
notify_the_user_that_everything_appears_to_be_fine
#
168
169
170
171
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 168
def notify_the_user_that_everything_appears_to_be_fine
opne 'Everything appears to be fine. The checked '
opne "directory was `#{sdir(programs_dir?)}`"
end
|
#reset ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 40
def reset
super()
infer_the_namespace
@array_these_entries_are_not_symlinks = []
discover_which_entries_are_not_symlinks end
|
#run ⇒ Object
198
199
200
201
202
203
204
205
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 198
def run
show_which_entries_are_not_symlinks
if main_array?.empty?
notify_the_user_that_everything_appears_to_be_fine
else
inform_the_user_what_can_be_done_about_incorrect_entries
end
end
|
55
56
57
58
59
60
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 55
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup
@input = i
(i)
end
|
#show_which_entries_are_not_symlinks ⇒ Object
Also known as:
report
#
show_which_entries_are_not_symlinks
#
156
157
158
159
160
161
162
163
|
# File 'lib/rbt/utility_scripts/check_for_invalid_current_symlinks.rb', line 156
def show_which_entries_are_not_symlinks
unless main_array?.empty?
main_array?.each {|entry|
e "#{rev}Note that #{sfancy(entry.ljust(37))} is #{sfancy('NOT')}"\
" a symlink."
}; e
end
end
|