Class: RBT::Cookbooks::CheckForCorrectDependencies

Inherits:
Base show all
Defined in:
lib/rbt/checks_and_validations/check_for_correct_dependencies.rb

Overview

RBT::Cookbooks::CheckForCorrectDependencies

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 = ARGV, run_already = true) ⇒ CheckForCorrectDependencies

#

initialize

#


30
31
32
33
34
35
36
37
38
39
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 30

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

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Cookbooks::CheckForCorrectDependencies[]

#


178
179
180
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 178

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

Instance Method Details

#check_for_every_entry(use_this_as_the_key_for_required_deps_on = 'required_deps_on'.to_sym) ⇒ Object

#

check_for_every_entry

This method will check for every available (registered) program.

#


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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 104

def check_for_every_entry(
    use_this_as_the_key_for_required_deps_on =
      'required_deps_on'.to_sym
  )
  opne "#{rev}Now checking every program. This may take a while."
  available_programs?.each {|program|
    program = File.basename(program).sub(/\.yml$/,'')
    # ===================================================================== #
    # The next line is very verbose, so it may be best to enable it only
    # for debugging purposes really.
    # ===================================================================== #
    # opne 'Working on the program `'+sfancy(program)+'` next.'
    # ===================================================================== #
    # We have two ways for the next line - we will either instantiate a
    # new Cookbooks object - or we will make use of an already existing,
    # expanded .yml file that holds the dataset for the program at hand.
    # ===================================================================== #
    if expanded_directory_exists? and
       File.exist?(
         path_to_this_expanded_cookbooks_dataset(program)
       )
      dataset = YAML.load_file(
        path_to_this_expanded_cookbooks_dataset(program)
      )
      deps = dataset[use_this_as_the_key_for_required_deps_on]
    else
      @raw_cookbook.reset_the_main_hash
      dataset = @raw_cookbook.find(program)
      deps    = @raw_cookbook.deps?
    end
    result = nil
    if deps
      result = deps.all? {|entry|
        RBT.really_does_include?(entry)
      }
    end
    if result # Ok, in this case all entries were found.
    else # else it was not found, so work on that.
      if deps
        @n_erroneous_entries_were_found += 1
        deps.each {|entry|
          if entry.nil?
            opne rev+'Nil value found for `'+steelblue(program)+'`. '\
                 'This is probably an empty entry.'
          end
          if entry
            if entry.include?(' ')
              entry = entry.split(' ').first.strip
            end
            unless RBT.really_does_include? entry
              e "#{rev}#{format_program(program)} #{rev}No "\
                "entry for `#{simp(entry)}#{rev}` was found."
            end
          end
        }
      end
    end
  }
end

#format_program(i) ⇒ Object

#

format_program

#


60
61
62
63
64
65
66
67
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 60

def format_program(i)
  _ = "#{i}:"
  _ = _.ljust(22)
  splitted = _.split(':')
  splitted[0] = sfancy(splitted.first)
  _ = splitted.join(':')
  _
end
#

menu (menu tag)

#


81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 81

def menu(
    i = commandline_arguments?
  )
  if i.is_a? Array
    i.each {|entry| menu(entry) }
  else
    case i
    # ===================================================================== #
    # === correct_deps? --help
    # ===================================================================== #
    when /^help$/
      show_help
    else
      opne "#{rev}Unregistered commandline argument: #{sfancy(i)}#{rev}"
    end
  end
end

#resetObject

#

reset (reset tag)

#


44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 44

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @raw_cookbook
  # ======================================================================= #
  @raw_cookbook = action(:raw_cookbook)
  # ======================================================================= #
  # === @n_erroneous_entries_were_found
  # ======================================================================= #
  @n_erroneous_entries_were_found = 0
end

#runObject

#

run (run tag)

#


167
168
169
170
171
172
173
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 167

def run
  unless commandline_arguments?.empty?
    menu
  else # else check for every entry
    check_for_every_entry
  end
end

#show_helpObject

#

show_help (help tag)

#


72
73
74
75
76
# File 'lib/rbt/checks_and_validations/check_for_correct_dependencies.rb', line 72

def show_help
  e
  e 'Currently this class has no special commandline flags.'
  e
end