Class: RBT::BuildDetector
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/utility_scripts/build_detector.rb
Overview
Constant Summary
collapse
- DEFAULT_BUILD_TYPE =
:unknown
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
#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
#initialize(i = nil, run_already = true) ⇒ BuildDetector
43
44
45
46
47
48
49
50
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 43
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
233
234
235
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 233
def self.[](i = ARGV)
new(i)
end
|
.do_guess_build_type ⇒ Object
#
RBT::BuildDetector.do_guess_build_type
This method can be used to guess the build type of a target archive. Prefer to use the method RBT.build_type? instead, though, since it is more convenient.
#
244
245
246
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 244
def self.do_guess_build_type
new.build_type?
end
|
Instance Method Details
#build_type? ⇒ Boolean
199
200
201
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 199
def build_type?
@build_type
end
|
#determine_build_type(use_this_as_target_directory = base_dir?
) ⇒ Object
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 154
def determine_build_type(
use_this_as_target_directory = base_dir?
)
files_from_pwd = Dir[use_this_as_target_directory+'*']
files_from_pwd_but_only_their_filenames = files_from_pwd.map { |entry|
File.basename(entry)
}
if files_from_pwd_but_only_their_filenames.include? 'CMakeLists.txt'
is_cmake_build_type
elsif files_from_pwd_but_only_their_filenames.include?('meson.build')
is_meson_build_type
elsif files_from_pwd_but_only_their_filenames.include?('waf') or
files_from_pwd_but_only_their_filenames.include?('wscript')
is_waf_build_type
elsif files_from_pwd_but_only_their_filenames.include?('SConscript') and
files_from_pwd_but_only_their_filenames.include?('SConstruct')
is_scons_build_type
elsif files_from_pwd_but_only_their_filenames.include?('configure')
is_configure_build_type
else set_build_type
end
end
|
#
By default, this class will use the current directory as the input directory that is to be checked.
#
70
71
72
73
74
75
76
77
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 70
def determine_whether_the_input_is_an_existing_directory
if File.exist? @input and File.directory? @input
set_main_dir(@input)
end
end
|
92
93
94
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 92
def input?
@input
end
|
#is_cmake_build_type ⇒ Object
119
120
121
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 119
def is_cmake_build_type
set_build_type :cmake
end
|
147
148
149
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 147
def is_configure_build_type
set_build_type :configure
end
|
#is_meson_build_type ⇒ Object
126
127
128
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 126
def is_meson_build_type
set_build_type :meson
end
|
#is_scons_build_type ⇒ Object
140
141
142
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 140
def is_scons_build_type
set_build_type :scons
end
|
#is_waf_build_type ⇒ Object
133
134
135
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 133
def is_waf_build_type
set_build_type :waf
end
|
#report ⇒ Object
215
216
217
218
219
220
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 215
def report
e "#{rev}The guessed build type is `#{sfancy(@build_type)}#{rev}`."
end
|
#reset ⇒ Object
55
56
57
58
59
60
61
62
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 55
def reset
super()
@build_type = DEFAULT_BUILD_TYPE
set_use_this_base_directory
end
|
#run ⇒ Object
225
226
227
228
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 225
def run
determine_whether_the_input_is_an_existing_directory
determine_build_type
end
|
#set_build_type(i = DEFAULT_BUILD_TYPE) ⇒ Object
#
set_build_type
The @build_type variable will always be a Symbol.
#
208
209
210
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 208
def set_build_type(i = DEFAULT_BUILD_TYPE)
@build_type = i
end
|
82
83
84
85
86
87
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 82
def set_input(i = '')
i = i.first if i.is_a? Array
i = return_pwd if i.nil?
i = i.to_s.dup
@input = i
end
|
#set_use_this_base_directory(i = return_pwd) ⇒ Object
Also known as:
set_main_dir
#
set_use_this_base_directory
#
99
100
101
102
103
104
105
106
107
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 99
def set_use_this_base_directory(
i = return_pwd
)
unless i.end_with? '/'
i = i.dup if i.frozen?
i << '/'
end
@use_this_base_directory = i
end
|
#use_this_base_directory? ⇒ Boolean
Also known as:
base_dir?
#
use_this_base_directory?
#
112
113
114
|
# File 'lib/rbt/utility_scripts/build_detector.rb', line 112
def use_this_base_directory?
@use_this_base_directory
end
|