Class: RBT::ConfigureString
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/misc/configure_string.rb
Constant Summary
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
#initialize(string = './configure', run_already = false) ⇒ ConfigureString
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/rbt/misc/configure_string.rb', line 27
def initialize(
string = './configure',
run_already = false
)
reset
set_configure_string(
string
)
run if run_already
end
|
Instance Method Details
#append(this) ⇒ Object
Also known as:
<<
#
append
This method will simply append data onto the @configure_string, after appending a ‘ ’. It does check whether the string already exists, before adding it.
#
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/rbt/misc/configure_string.rb', line 114
def append(this)
this = this.flatten.join(' ') if this.is_a? Array
if this.include? ' '
this.split(' ').each {|_| append(_)}
else
@configure_string << ' '+this if ! @configure_string.include? this
@configure_string.lstrip! if string?.start_with? ' ' end
end
|
#check_then_append(this_string) ⇒ Object
#
check_then_append
This first checkes the prefix and if the prefix does not contain something special, then we add the argument to it.
For example:
--with-os-vendor="HiveOS"
#
268
269
270
271
272
273
274
|
# File 'lib/rbt/misc/configure_string.rb', line 268
def check_then_append(this_string)
if this_string.include? '--' and this_string.include? '='
this_string =~ /--(.*)=/
target = $1.dup
append(this_string) unless this_string.include?(target)
end
end
|
#
Contains the configure string object.
#
51
52
53
|
# File 'lib/rbt/misc/configure_string.rb', line 51
def configure_string?
@configure_string
end
|
#do_not_use_a_prefix ⇒ Object
#
do_not_use_a_prefix
Do not use a prefix at all.
#
152
153
154
|
# File 'lib/rbt/misc/configure_string.rb', line 152
def do_not_use_a_prefix
@do_not_use_a_prefix = true
end
|
#do_use_a_prefix ⇒ Object
159
160
161
|
# File 'lib/rbt/misc/configure_string.rb', line 159
def do_use_a_prefix
@do_not_use_a_prefix = false
end
|
#leading_part=(i) ⇒ Object
#
leading_part
A setter method to set the leading part.
#
72
73
74
|
# File 'lib/rbt/misc/configure_string.rb', line 72
def leading_part=(i)
@configure_string.prepend(i) end
|
#modify_prefix(new_prefix) ⇒ Object
#
modify_prefix
This method modifies the –prefix= directive by replacing the old directive (if found). Invoke this method ONLY if you are sure that you want to modify the prefix PERMANENTLY.
x = ' --prefix=/Programs/Xosd/2.11.122 '; x.gsub!(/--prefix=\/\S*/,'')
#
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
|
# File 'lib/rbt/misc/configure_string.rb', line 303
def modify_prefix(new_prefix)
unless @do_not_use_a_prefix @configure_string.sub!(/--prefix=\/\S*/,' ')
if new_prefix.include? '-'
new_prefix.delete!('-')
end
sanitize_configure_string
if @configure_string.include? '|'
splitted = @configure_string.split '|'
splitted[1] = splitted[1]+' --prefix='+new_prefix+' '
set_configure_string splitted.join('|')
else if @configure_string.include? 'configure'
pos = @configure_string =~ /configure/
@configure_string[pos+'configure'.size, 0] = ' --prefix='+new_prefix+' '
else
pos = @configure_string =~ /config/
@configure_string[pos+'config'.size,0] = ' --prefix='+new_prefix+' '
end
end
set_prefix(new_prefix) end
end
|
#prefix? ⇒ Boolean
Also known as:
prefix
#
prefix?
for @prefix? Dont set this to an attr_*writer!
#
291
292
293
|
# File 'lib/rbt/misc/configure_string.rb', line 291
def prefix?
@prefix
end
|
#prepend(this_string) ⇒ Object
#
prepend
This method will simply prepend data onto the @configure_string. It does NO sanity-checking whatsoever.
#
103
104
105
|
# File 'lib/rbt/misc/configure_string.rb', line 103
def prepend(this_string)
@configure_string.prepend(this_string)
end
|
#reset ⇒ Object
41
42
43
44
|
# File 'lib/rbt/misc/configure_string.rb', line 41
def reset
super()
do_use_a_prefix
end
|
#run ⇒ Object
339
340
341
342
343
344
|
# File 'lib/rbt/misc/configure_string.rb', line 339
def run
set_target :default
set_build
set_host
set_march
end
|
#
This methods attempts to ensure that our string is correct. For this, it removes newlines and some other things that may crop up.
#
82
83
84
85
86
87
88
|
# File 'lib/rbt/misc/configure_string.rb', line 82
def sanitize_configure_string
@configure_string.chomp!
@configure_string.strip!
@configure_string.squeeze!(' ')
@configure_string.gsub!(/\n/, '')
@configure_string.gsub!(/\.\/\.\//, './') end
|
#set_build(build_type = :linux) ⇒ Object
#
set_build
set_build :mac (build tag)
#
197
198
199
200
201
202
203
204
205
206
207
208
209
|
# File 'lib/rbt/misc/configure_string.rb', line 197
def set_build(
build_type = :linux
)
case build_type
when :x64, :cross_linux, :cross, :dualcore
build_type = 'x86_64-pc-linux-gnu'
when :linux
build_type = 'i686-pc-linux-gnu'
when :mac
build_type = 'powerpc-apple'
end
append '--build="'+build_type+'"'
end
|
#
Use this method when setting @configure_string.
#
60
61
62
63
64
|
# File 'lib/rbt/misc/configure_string.rb', line 60
def set_configure_string(i)
i = '' if i.nil?
i = i.strip
@configure_string = i
end
|
#set_host(host_type = :mingw) ⇒ Object
#
set_host
This sets the host type. It relies on symbols for special constructs.
#
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
# File 'lib/rbt/misc/configure_string.rb', line 131
def set_host(
host_type = :mingw
)
case host_type
when :mac
host_type = 'powerpc-apple-darwin7.7.0'
when :windows, :win, :mingw
host_type = 'i686-pc-mingw32' when :linux
host_type = 'i586-pc-linux-gnu'
when :old_linux
host_type = 'i386-linux'
end
append '--host="'+host_type+'"'
end
|
#set_march(march_type = 'athlon-xp') ⇒ Object
#
set_march (march tag)
Remember that if march=arch is set then -mcpu=arch is also honored.
#
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
# File 'lib/rbt/misc/configure_string.rb', line 229
def set_march(
march_type = 'athlon-xp'
)
case march_type.to_sym
when :pentium march_type = 'pentium4' when :middle_pentium
march_type = 'pentium3'
when :old_pentium march_type = 'pentium2'
when :Intel_Celeron_M
march_type = 'pentium-m'
when :amd
march_type = 'athlon-xp'
when :mp
march_type = 'athlon-mp'
when :athlon64
march_type = 'athlon64'
when :old
march_type = 'i486'
when :k6
march_type = 'k6'
when :default, :native
march_type = 'native' end
append '--march="'+march_type+'"'
end
|
#set_prefix(i) ⇒ Object
93
94
95
|
# File 'lib/rbt/misc/configure_string.rb', line 93
def set_prefix(i)
@prefix = i
end
|
#set_target(target_type = 'i686-pc-linux-gnu') ⇒ Object
#
set_target (target tag)
#
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
|
# File 'lib/rbt/misc/configure_string.rb', line 166
def set_target(
target_type = 'i686-pc-linux-gnu'
)
case target_type
when :default, :linux
target_type = 'i686-pc-linux-gnu'
when :windows
target_type = 'i686-pc-mingw32'
when :currentwindows, :current_windows
target_type = 'i586-mingw32'
when :oldwindows, :old_windows
target_type = 'i386-mingw32'
when :sparc
target_type = 'sparc-linux'
when :ppc, :powerpc
target_type = 'powerpc-linux'
else
if target_type.to_s.empty?
target_type = 'i686-pc-linux-gnu'
else end
end
append '--target="'+target_type.to_s+'"'
end
|
#set_tune(tune_type = 'i686') ⇒ Object
#
set_tune
No idea yet …
#
216
217
218
219
220
221
222
|
# File 'lib/rbt/misc/configure_string.rb', line 216
def set_tune(tune_type = 'i686')
case tune_type
when :default
tune_type = 'i686'
end
append '--tune="'+tune_type+'"'
end
|
#string? ⇒ Boolean
Also known as:
string, _
#
string?
_() is an easier wrapper towards the @configure_string variable.
#
281
282
283
|
# File 'lib/rbt/misc/configure_string.rb', line 281
def string?
@configure_string
end
|