Class: RBT::Cookbooks::UpdateKdePortingAids

Inherits:
CheckForRemoteWebpages show all
Defined in:
lib/rbt/check_for_updates/update_kde_porting_aids.rb

Overview

RBT::Cookbooks::UpdateKdePortingAids

Constant Summary collapse

REMOTE_URL =
#

REMOTE_URL

#
REMOTE_URL_FOR_KDE_PORTING_AIDS
REMOTE_DOWNLOAD_URL =
#

REMOTE_DOWNLOAD_URL

#
REMOTE_URL

Constants inherited from LeanPrototype

LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CheckForRemoteWebpages

#add_these_programs_were_updated, #array_these_programs_were_updated?, #commandline_size_query_was_issued?, #correct_for_common_mistakes_in_program_names, #dataset?, #distrowatch_url?, #do_use_wget, #ensure_download_mode_is_system_wget_from_now_on, #menu, #notify_the_user_that_no_downloads_have_occurred, #obtain_dataset_from_the_remote_webpage, #report_that_these_programs_were_updated, #report_the_remote_webpage, #return_local_version_of_this_program, #show_help, #that_remote_URL_should_be_at, #update_entry, #use_wget?

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

Methods inherited from LeanPrototype

#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, #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_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

Constructor Details

#initialize(i = nil, run_already = true) ⇒ UpdateKdePortingAids

#

initialize

#


42
43
44
45
46
47
48
49
50
51
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 42

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_commandline(
    i
  )
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Cookbooks::UpdateKdePortingAids[]

#


166
167
168
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 166

def self.[](i = ARGV)
  new(i)
end

Instance Method Details

#decide_what_to_do_nextObject

#

decide_what_to_do_next

The first variant can be invoked via:

KDE_PortingAids --size
#


85
86
87
88
89
90
91
92
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 85

def decide_what_to_do_next
  if commandline_size_query_was_issued?
    opne "#{rev}There are #{sfancy(@scanned_results.size)} #{rev}"\
         "remote KDE PortingAids programs."
  else # else, enter the default "modus operandi".
    iterate_through_the_results_and_update_old_cookbooks_entries
  end
end

#iterate_through_the_results_and_update_old_cookbooks_entriesObject

#

iterate_through_the_results_and_update_old_cookbooks_entries

#


97
98
99
100
101
102
103
104
105
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
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 97

def iterate_through_the_results_and_update_old_cookbooks_entries
  @scanned_results.each {|this_program| # ← That variable is e. g. 'plasma-vault-5.11.0'
    name_of_the_program, program_version =
      ::ProgramInformation.return_array_program_name_and_program_version(this_program)
    # ===================================================================== #
    # Next, we must compare it to the local dataset.
    # ===================================================================== #
    local_dataset = new_cookbook_instance_for(name_of_the_program)
    local_program_version = local_dataset.program_version?
    if local_program_version < program_version
      # =================================================================== #
      # In this case, we have to updated.
      # =================================================================== #
      @downloaded_n_programs += 1
      opne "#{rev}There is a more recent program version "\
           "available for `#{sfancy(name_of_the_program)}`."
      full_remote_url = "#{remote_download_url?}#{this_program}.tar.xz"
      that_remote_URL_should_be_at(full_remote_url)
      colourized_result = slateblue(
        "class RBT::UpdateEntry.new(#{full_remote_url})"
      )
      opne "Now delegating towards #{colourized_result}."
      update_entry(full_remote_url)
      # =================================================================== #
      # Keep track of which programs were updated:
      # =================================================================== #
      add_these_programs_were_updated(
        remove_archive_from_the_end(
          File.basename(full_remote_url)
        )
      )
    end
  }
  if @downloaded_n_programs == 0
    notify_the_user_that_no_downloads_have_occurred
  else
    report_that_these_programs_were_updated(array_these_programs_were_updated?)
  end
end

#main_url?Boolean Also known as: remote_url?, remote_webpage?, remote_website?

#

main_url?

#

Returns:

  • (Boolean)


64
65
66
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 64

def main_url?
  REMOTE_URL
end

#remote_download_url?Boolean

#

remote_download_url?

#

Returns:

  • (Boolean)


73
74
75
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 73

def remote_download_url?
  REMOTE_DOWNLOAD_URL
end

#resetObject

#

reset (reset tag)

#


56
57
58
59
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 56

def reset
  super()
  infer_the_namespace
end

#runObject

#

run (run tag)

#


156
157
158
159
160
161
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 156

def run
  report_the_remote_webpage
  obtain_remote_dataset
  scan_for_all_results
  decide_what_to_do_next
end

#scan_for_all_resultsObject

#

scan_for_all_results

#


140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/rbt/check_for_updates/update_kde_porting_aids.rb', line 140

def scan_for_all_results
  # ======================================================================= #
  # See this entry for the following regex:
  #
  #   https://rubular.com/r/FHa92f76Xe
  #
  # ======================================================================= #
  use_this_regex = KDE_REGEX_FOR_REMOTE_ARCHIVES
  @scanned_results = @dataset.scan(use_this_regex).flatten.map {|entry|
    entry.delete_suffix('.tar.xz')
  }
end