Class: RBT::Cookbooks::CheckForRemoteWebpages
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/check_for_updates/base.rb
Overview
RBT::Cookbooks::CheckForRemoteWebpages
Direct Known Subclasses
CheckForBlfsUpdates, CheckForMateDesktopUpdates, CheckForNewReleaseOnRubygems, CheckForSlackwareUpdates, NewCheckForGnomeUpdates, ReportTheseProgramsCouldBeUpdated, UpdateKdeApplications, UpdateKdeFramework, UpdateKdePlasma, UpdateKdePortingAids, UpdateLxqt
Constant Summary
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_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, #initialize, #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, #otomato, #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_name, #return_program_name_for_gobolinux_systems, #return_program_name_via_program_information, #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, #rpn, #run, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_colours, #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
Instance Method Details
#add_these_programs_were_updated(i) ⇒ Object
#
add_these_programs_were_updated
#
79
80
81
|
# File 'lib/rbt/check_for_updates/base.rb', line 79
def add_these_programs_were_updated(i)
@internal_hash[:array_these_programs_were_updated] << i
end
|
#array_these_programs_were_updated? ⇒ Boolean
#
array_these_programs_were_updated?
#
64
65
66
|
# File 'lib/rbt/check_for_updates/base.rb', line 64
def array_these_programs_were_updated?
@internal_hash[:array_these_programs_were_updated]
end
|
#commandline_size_query_was_issued? ⇒ Boolean
#
commandline_size_query_was_issued?
#
100
101
102
103
104
|
# File 'lib/rbt/check_for_updates/base.rb', line 100
def commandline_size_query_was_issued?
commandline_arguments?.any? {|entry|
entry.include? 'size'
}
end
|
#correct_for_common_mistakes_in_program_names(i) ⇒ Object
#
correct_for_common_mistakes_in_program_names
The BLFS folks, but also the slackware folks, use some wrong names.
The following ad-hoc case/when menu will correct some of these wrong names.
The correct name is the one that comes from the official tarball release. So for example, for “gtk+-3.93.0.tar.xz”, the official name is exactly “gtk+” and NOT “gtk+3”, despite the BLFS team thinking otherwise.
#
126
127
128
129
130
131
132
133
134
135
136
|
# File 'lib/rbt/check_for_updates/base.rb', line 126
def correct_for_common_mistakes_in_program_names(i)
case i when 'node.js'
i = 'node'
when 'openjpeg2'
i = 'openjpeg'
when 'gtk+3'
i = 'gtk+'
end
return i
end
|
#dataset? ⇒ Boolean
154
155
156
|
# File 'lib/rbt/check_for_updates/base.rb', line 154
def dataset?
@dataset
end
|
#distrowatch_url? ⇒ Boolean
109
110
111
|
# File 'lib/rbt/check_for_updates/base.rb', line 109
def distrowatch_url?
'https://distrowatch.org/'
end
|
#do_use_wget ⇒ Object
86
87
88
|
# File 'lib/rbt/check_for_updates/base.rb', line 86
def do_use_wget
@internal_hash[:use_wget] = true
end
|
#ensure_download_mode_is_system_wget_from_now_on ⇒ Object
#
ensure_download_mode_is_system_wget_from_now_on
#
264
265
266
|
# File 'lib/rbt/check_for_updates/base.rb', line 264
def ensure_download_mode_is_system_wget_from_now_on
@internal_hash[:use_this_download_mode] = :system_wget
end
|
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# File 'lib/rbt/check_for_updates/base.rb', line 177
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i when /^-?-?use(-|_| )wget$/i
do_use_wget
when /^-?-?help$/i
show_help
exit
end
end
end
|
#notify_the_user_that_no_downloads_have_occurred ⇒ Object
#
notify_the_user_that_no_downloads_have_occurred
#
161
162
163
164
165
|
# File 'lib/rbt/check_for_updates/base.rb', line 161
def notify_the_user_that_no_downloads_have_occurred
opne "#{rev}No downloads occurred. This usually means"
opne "that all local programs are up to date! "+
yellow("\\o/")+rev
end
|
#obtain_dataset_from_the_remote_webpage(url_to_the_remote_webpage = remote_webpage?
) ⇒ Object
Also known as:
obtain_remote_dataset
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
|
# File 'lib/rbt/check_for_updates/base.rb', line 231
def obtain_dataset_from_the_remote_webpage(
url_to_the_remote_webpage = remote_webpage?
)
begin
@dataset = URI.open(url_to_the_remote_webpage).read
rescue OpenSSL::SSL::SSLError => error
opne tomato('An error occurred, related to OpenSSL. Perhaps openssl')
opne tomato('has not been installed correctly. Either way the')
opne tomato('download mode will be changed.')
ensure_download_mode_is_system_wget_from_now_on
cd log_dir? local_file = "#{log_dir?}index.html"
delete_file(local_file)
esystem "wget #{url_to_the_remote_webpage}"
@dataset = File.read(local_file)
rescue OpenURI::HTTPError => error
opnn; etomato('OpenURI::HTTPError was encountered. This usually happens when the')
opne tomato('URL is invalid (')+
sfancy(url_to_the_remote_webpage)+
tomato(')')
opnn; etomato('Consider fixing the URL and trying again.')
pp error
exit
end
end
|
#report_that_these_programs_were_updated(array) ⇒ Object
#
report_that_these_programs_were_updated
#
141
142
143
144
145
146
147
148
149
|
# File 'lib/rbt/check_for_updates/base.rb', line 141
def report_that_these_programs_were_updated(array)
unless array.empty?
opne "#{rev}The following #{simp(array.size.to_s)} "\
"#{rev}programs were updated:"
array.each {|this_program|
e " #{sfancy(this_program)}"
}
end
end
|
#report_the_remote_webpage(i = remote_webpage?
) ⇒ Object
#
report_the_remote_webpage
Standard method to report the remote webpage in use.
#
214
215
216
217
218
219
220
221
222
223
|
# File 'lib/rbt/check_for_updates/base.rb', line 214
def report_the_remote_webpage(
i = remote_webpage?
)
opne grey('Attempting to obtain data from the following ')+
lightblue('remote URL')+
(':')
e
e " #{steelblue(i)}"
e
end
|
#reset ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/rbt/check_for_updates/base.rb', line 30
def reset
super()
@internal_hash = {}
@internal_hash[:use_wget] = false
@internal_hash[:use_this_download_mode] = :ruby_wrapper_over_wget
@internal_hash[:array_these_programs_were_updated] = []
@dataset = nil @downloaded_n_programs = 0 do_use_colours
end
|
#return_local_version_of_this_program(i) ⇒ Object
#
return_local_version_of_this_program
#
170
171
172
|
# File 'lib/rbt/check_for_updates/base.rb', line 170
def return_local_version_of_this_program(i)
action(:SanitizeCookbook, i) { :fast }.program_version?
end
|
#show_help ⇒ Object
202
203
204
205
206
207
|
# File 'lib/rbt/check_for_updates/base.rb', line 202
def show_help
e
e "#{rev} The option #{steelblue('--use-wget')}"\
" can be used to force the use of system wget."
e
end
|
#that_remote_URL_should_be_at(full_remote_url) ⇒ Object
#
that_remote_URL_should_be_at
#
71
72
73
74
|
# File 'lib/rbt/check_for_updates/base.rb', line 71
def that_remote_URL_should_be_at(full_remote_url)
opne "#{rev}That remote URL should be at: "\
"#{sfancy(full_remote_url)}#{rev}"
end
|
#update_entry(full_remote_url) ⇒ Object
271
272
273
274
275
276
277
|
# File 'lib/rbt/check_for_updates/base.rb', line 271
def update_entry(full_remote_url)
require 'rbt/requires/require_class_update_entry.rb'
RBT::UpdateEntry.new(full_remote_url) {{
do_not_ftp_upload: true,
download_mode: @internal_hash[:use_this_download_mode]
}}
end
|
#use_wget? ⇒ Boolean
93
94
95
|
# File 'lib/rbt/check_for_updates/base.rb', line 93
def use_wget?
@internal_hash[:use_wget]
end
|