Class: RBT::Cookbooks::ScanSourceArchive
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb
Overview
RBT::Cookbooks::ScanSourceArchive
Constant Summary
collapse
- ARRAY_SKIP_THESE_DIRECTORIES =
#
ARRAY_SKIP_THESE_DIRECTORIES
Next comes a listing of Sub-Directories to skip (forbidden dirs). Careful with what you enter here.
#
%w(
/windows/
java
rpg
firefox
extensions
opera
firmware
ruby
patches
gobolinux
fonts
hardware
rarlinux
libreoffice
nvidia
jdk
bios
flash
jquery
ntfs3g
pdf
polkitqt
wlan
youtubedl
)
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, #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, #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_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
59
60
61
62
63
64
65
66
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 59
def initialize(
run_already = true
)
register_sigint
super()
reset
run if run_already
end
|
Instance Method Details
#array_registered_files? ⇒ Boolean
Also known as:
array_registered_files
#
array_registered_files?
#
192
193
194
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 192
def array_registered_files?
@array_registered_files
end
|
#files? ⇒ Boolean
185
186
187
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 185
def files?
@array_registered_files
end
|
#forbidden?(i) ⇒ Boolean
#
forbidden?
Skip directories listed in our array.
#
175
176
177
178
179
180
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 175
def forbidden?(i)
ARRAY_SKIP_THESE_DIRECTORIES.any? { |entry|
return true if i.include? entry
}
return false
end
|
#process_registered_programs(i = files?
) ⇒ Object
#
process_registered_programs
#
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 206
def process_registered_programs(
i = files?
)
available_programs = available_programs?
i.each { |name_of_the_program, real_location|
if available_programs.include? name_of_the_program
else opne swarn('`')+
sfancy(name_of_the_program.to_s)+
swarn('` is not included.')
opne "#{rev}It can be found at `#{sfile(real_location)}#{rev}`."
end
}
end
|
#query_database? ⇒ Boolean
Also known as:
query_database
199
200
201
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 199
def query_database?
@query_database
end
|
#register_file(f, real_location) ⇒ Object
#
register_file
Simply append to @array_registered_file.
The second argument shall specify the target location.
#
105
106
107
108
109
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 105
def register_file(f, real_location)
@array_registered_files << [
f, real_location
] end
|
#reset ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 71
def reset
super()
infer_the_namespace
@cookbook_dataset = nil
@array_registered_files = [] end
|
#run ⇒ Object
225
226
227
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 225
def run
scan
end
|
#scan(target = source_directory?
) ⇒ Object
#
scan
This is the actual scanning action.
#
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
163
164
165
166
167
168
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 116
def scan(
target = source_directory?
)
set_target_directory(target)
opne "Scanning through `#{sdir(target_directory?)}"\
"` and all of its subdirectories next."
opne "This may take a while - please be patient.#{N}"
all_files = Dir["#{target_directory?}**/*"].sort
all_files.reject! {|entry| File.directory? entry }
opne "#{royalblue(all_files.size.to_s)} entries (== files) were found."
all_files.each { |file|
original_file = file.to_s.dup next if !file.include? '-'
next if forbidden?(file)
file = remove_archive_at_the_end(
File.basename(file).downcase
)
name_of_the_program = ProgramInformation::ProgramInformation.new(file).return_name
name_of_the_program = name_of_the_program.to_s.
tr('-','').downcase.
tr('_','')
if name_of_the_program.empty?
opne "Something went wrong for #{sfile(file)}#{rev}, "\
"#{sfancy(original_file)} #{rev}(#{simp(name_of_the_program)}#{rev})."
opne 'Please correct this mistake.'
elsif file.end_with? '.gem' name_of_the_program = nil
end
begin
register_file(
name_of_the_program, original_file
) if name_of_the_program
rescue Exception => error
opne 'An error happened (error type: '+sfancy(error.class.to_s)+
') at line '+swarn(__LINE__.to_s)
opne 'The original_file entry was: '+simp(original_file.to_s)
pp error
end
}
process_registered_programs
end
|
#set_target_directory(i) ⇒ Object
87
88
89
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 87
def set_target_directory(i)
@target_directory = i
end
|
#target_directory? ⇒ Boolean
Also known as:
target_directory
94
95
96
|
# File 'lib/rbt/cookbooks/scan_source_archive/scan_source_archive.rb', line 94
def target_directory?
@target_directory
end
|