Class: RBT::Cookbooks::ReportTheseProgramsCouldBeUpdated

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

Overview

RBT::Cookbooks::ReportTheseProgramsCouldBeUpdated

Constant Summary collapse

REGEX_FOR_DISTROWATCH_PROGRAMS =
#

REGEX_FOR_DISTROWATCH_PROGRAMS

#
/<td class="News"><a name="(.+)"><\/a><a href=".+">(.+)<\/a><\/td>\s*<\/tr>/

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_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(commandline_arguments = nil, run_already = true) ⇒ ReportTheseProgramsCouldBeUpdated

#

initialize

#


32
33
34
35
36
37
38
39
40
41
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 32

def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

RBT::ReportTheseProgramsCouldBeUpdated[]

#


145
146
147
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 145

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

Instance Method Details

#check_entries_on_distrowatchObject

#

check_entries_on_distrowatch

#


65
66
67
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
95
96
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
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 65

def check_entries_on_distrowatch
  use_this_regex = REGEX_FOR_DISTROWATCH_PROGRAMS
  e rev+'First checking for new entries at '+yellow(+'distrowatch')+rev+'.'
  e
  dataset = URI.openopen(distrowatch_url?).read
  scanned = dataset.scan(use_this_regex)
  e 'The following programs were discovered (and reported as new) at distrowatch:'
  e
  # ======================================================================= #
  # Iterate over our Array next:
  # ======================================================================= #
  scanned.each {|this_program, this_version|
    is_it_registered_locally_or_not = false
    if RBT.does_include?(this_program.downcase.delete('-_'))
      is_it_registered_locally_or_not = true
    end
    append_version_information_string = ''.dup
    verbose_truth_is_it_registered_locally_or_not = verbose_truth(
      is_it_registered_locally_or_not
    )
    if verbose_truth_is_it_registered_locally_or_not.include? 'No'
      verbose_truth_is_it_registered_locally_or_not = verbose_truth_is_it_registered_locally_or_not.dup
      verbose_truth_is_it_registered_locally_or_not.sub!(
        /No/, crimson('No')
      )
      verbose_truth_is_it_registered_locally_or_not = 
        verbose_truth_is_it_registered_locally_or_not.delete('.')+cadetblue('. ')
    else
      # =================================================================== #
      # In this case the program is registered locally. Determine the
      # version too, in this case.
      # =================================================================== #
      verbose_truth_is_it_registered_locally_or_not = cadetblue(
        verbose_truth_is_it_registered_locally_or_not
      )
      append_version_information_string << darkgreen(' The local version is: ')
      the_local_version_is_this = RBT.swift_return_version_of_this_program(
        this_program.downcase.delete('-_').to_sym
      ).to_s 
      append_version_information_string << limegreen(the_local_version_is_this)
      if the_local_version_is_this == this_version
        # All is fine.
      else
        unless Gem::Version.new(the_local_version_is_this) > Gem::Version.new(this_version)
          register_unequal_version_for(
            this_program.delete('-_').to_sym
          )
        end
      end
    end
    e '  '+
      sfancy(
        this_program.downcase.ljust(25)
      )+
      royalblue(this_version.ljust(8))+' '+
      slateblue(' [Is it included locally: ')+
      verbose_truth_is_it_registered_locally_or_not+
      slateblue(']')+
      append_version_information_string
    # ===================================================================== #
    # Also report if we could update this next
    # ===================================================================== #
    if @array_these_programs_could_be_updated.include?(this_program.delete('-_').to_sym)
      e crimson('   ^^^ this program is registered '\
        'and could be updated')
    end
  }
  e
end

#register_unequal_version_for(i) ⇒ Object

#

register_unequal_version_for

#


58
59
60
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 58

def register_unequal_version_for(i)
  @array_these_programs_could_be_updated << i
end

#resetObject

#

reset (reset tag)

#


46
47
48
49
50
51
52
53
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 46

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @array_these_programs_could_be_updated
  # ======================================================================= #
  @array_these_programs_could_be_updated = []
end

#runObject

#

run (run tag)

#


138
139
140
# File 'lib/rbt/check_for_updates/report_these_programs_could_be_updated.rb', line 138

def run
  check_entries_on_distrowatch
end