Class: RBT::SaveTheAvailableProgramsVersions

Inherits:
Base show all
Defined in:
lib/rbt/utility_scripts/save_the_available_programs_versions.rb

Overview

RBT::SaveTheAvailableProgramsVersions

Constant Summary

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

#

initialize

#


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 27

def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  if block_given?
    yielded = yield
    case yielded
    # ===================================================================== #
    # === :do_not_store
    # ===================================================================== #
    when :do_not_store
      @report_and_store_into_a_local_text_file = false
    end
  end
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::SaveTheAvailableProgramsVersions[]

#


185
186
187
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 185

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

Instance Method Details

#fill_up_the_result_variableObject

#

fill_up_the_result_variable

This method will populate @result with the proper content/data.

It will make use of class RawCookbook for this.

#


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/utility_scripts/save_the_available_programs_versions.rb', line 75

def fill_up_the_result_variable
  # ======================================================================= #
  # We must store these entries:
  #
  #   (1) program name
  #   (2) program version
  #   (3) last update of this program
  #   (4) remote URL
  #
  # ======================================================================= #
  available_programs?.each {|this_program|
    # ===================================================================== #
    # The variable this_program looks like this:
    #
    #   /home/Programs/Ruby/2.7.1/lib/ruby/site_ruby/2.7.0/rbt/yaml/cookbooks/gnote.yml
    #
    # ===================================================================== #
    _ = @raw_cookbook.load_this_program(this_program)
    # ===================================================================== #
    # All information is obtained from class RawCookbook. This means that
    # we have to pass Strings towards the [] method.
    # ===================================================================== #
    original_url1 = _[:url1].dup
    url1 = _[:url1]
    last_update = _[:last_update]
    if _.has_key? :program_name_and_program_version
      url1 = _[:program_name_and_program_version]
      url1 = sanitize_url1_entry(url1, _)
    end
    program_name = remove_archive_from_the_end(
      ProgramInformation.return_program_name(
        File.basename(url1)
      )
    )
    program_version = remove_archive_from_the_end(
      ProgramInformation.return_program_version(
        File.basename(url1)
      )
    )
    # ===================================================================== #
    # Next, we need to rescue github-URLs.
    # ===================================================================== #
    if url1.include?('//github.com') and
      program_name.empty? and
      program_version.empty?
      _ = RBT.return_program_name_and_program_version_from_this_github_url(url1)
      program_name    = ProgramInformation.return_name(_)
      program_version = ProgramInformation.return_version(_)
    end
    if program_name.nil?
      ewarn 'problem for: '+steelblue(this_program)
    else
      @result << "#{program_name.to_s.downcase.ljust(25)} "\
                 "#{program_version.ljust(12)} "\
                 "#{last_update.ljust(12)} "\
                 "#{original_url1}\n"
    end
  }
end

#report_the_resultObject

#

report_the_result

#


138
139
140
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 138

def report_the_result
  e @result
end

#resetObject

#

reset (reset tag)

#


51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 51

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @result
  # ======================================================================= #
  @result = ''.dup
  # ======================================================================= #
  # === @raw_cookbook
  # ======================================================================= #
  @raw_cookbook = action(:raw_cookbook)
  # ======================================================================= #
  # === @report_and_store_into_a_local_text_file
  # ======================================================================= #
  @report_and_store_into_a_local_text_file = true
end

#result?Boolean

#

result?

#

Returns:

  • (Boolean)


145
146
147
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 145

def result?
  @result
end

#runObject

#

run (run tag)

#


166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 166

def run
  fill_up_the_result_variable
  if @report_and_store_into_a_local_text_file
    report_the_result
    store_the_result_into_a_local_text_file
    if is_on_roebe?
      into = RUBY_SRC_DIR_RBT_YAML+
             'programs_version/'\
             'the_expanded_coobkook_dataset_was_last_updated_on_this_day.yml'
      opne "#{rev}Storing into the file `#{sfile(into)}#{rev}` next."
      what = dd_mm_yyyy
      write_what_into(what, into)
    end
  end
end

#store_the_result_into_a_local_text_fileObject

#

store_the_result_into_a_local_text_file

#


152
153
154
155
156
157
158
159
160
161
# File 'lib/rbt/utility_scripts/save_the_available_programs_versions.rb', line 152

def store_the_result_into_a_local_text_file
  what = @result
  into = "#{RUBY_SRC_DIR_RBT_YAML}programs_version/"\
         "available_programs_versions.md"
  opne "#{rev}Now storing into this file:"
  e
  e "  #{sfile(into)}"
  e
  write_what_into(what, into)
end