Class: RBT::CreatePkgconfigFile
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/generate_files/create_pkgconfig_file.rb
Overview
Constant Summary
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === RBT::CreatePkgconfigFile[] ========================================================================= #.
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) ⇒ CreatePkgconfigFile
34
35
36
37
38
39
40
41
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 34
def initialize(
i = nil,
run_already = true
)
reset
set_input_hash(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
#
RBT::CreatePkgconfigFile[]
#
341
342
343
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 341
def self.[](i = '')
new(i)
end
|
Instance Method Details
#add(i = '') ⇒ Object
167
168
169
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 167
def add(i = '')
@store_this_string << i+N
end
|
#build_up_the_main_string ⇒ Object
#
build_up_the_main_string (main string, main tag)
This method depends on information made available prior to calling it, e. g. the method description? or prefix? and so forth.
#
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 295
def build_up_the_main_string
add 'prefix='+prefix?.to_s add 'exec_prefix=${prefix}'
add 'libdir=${exec_prefix}/lib'
add 'includedir=${prefix}/include'
add
add 'Name: '+program_name?.dup
add "Description: #{word_wrapped_description?}"
add 'Requires:'
add 'Version: '+program_version?
add (
'Libs: -L${libdir} -l'+program_name?+' '+.to_s
).rstrip
add 'Cflags: -I${includedir}'
end
|
#description? ⇒ Boolean
85
86
87
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 85
def description?
@description
end
|
#ensure_that_the_pkgconfig_directory_exists_for(i) ⇒ Object
#
ensure_that_the_pkgconfig_directory_exists_for
#
284
285
286
287
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 284
def ensure_that_the_pkgconfig_directory_exists_for(i)
i = File.dirname(i)
mkdir(i, :be_quiet) unless File.directory? i
end
|
314
315
316
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 314
def
@extra_libs
end
|
#handle_special_programs ⇒ Object
#
handle_special_programs
#
321
322
323
324
325
326
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 321
def handle_special_programs
case raw_name_of_the_program?
when 'lua'
@extra_libs << '-lm -ldl'
end
end
|
143
144
145
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 143
def input_hash?
@input_hash
end
|
#
This method can be used to decompose the given input at hand. It is the first method that is called from within run() itself.
#
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 189
def parse_input_hash
_ = input_hash?
if _.has_key? :pkgconfig_filename
set_pkgconfig_filename(_.delete(:pkgconfig_filename))
end
if _.has_key? :prefix
@prefix = _.delete(:prefix)
end
if _.has_key? :program_version
set_program_version _.delete(:program_version)
elsif _.has_key? :version
set_program_version _.delete(:version)
end
if _.has_key? :description
@description = _.delete(:description)
end
end
|
#pkgconfig_filename? ⇒ Boolean
150
151
152
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 150
def pkgconfig_filename?
@pkgconfig_filename
end
|
#prefix? ⇒ Boolean
92
93
94
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 92
def prefix?
@prefix
end
|
#program_name? ⇒ Boolean
#
program_name?
This method is guaranteed to return the name without the .pc name.
#
159
160
161
162
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 159
def program_name?
File.basename(pkgconfig_filename?).
delete_suffix('.pc').dup
end
|
#program_version? ⇒ Boolean
243
244
245
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 243
def program_version?
@program_version
end
|
#raw_name_of_the_program? ⇒ Boolean
#
raw_name_of_the_program?
#
277
278
279
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 277
def raw_name_of_the_program?
return File.basename(pkgconfig_filename?.dup).delete_suffix('.pc')
end
|
#reset ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 46
def reset
super()
infer_the_namespace
@store_this_string = ''.dup
@prefix = '/usr' @program_version = '1.0.0'
@pkgconfig_filename = 'mad'
@description = ''
@extra_libs = ''.dup
end
|
#run ⇒ Object
331
332
333
334
335
336
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 331
def run
parse_input_hash handle_special_programs
build_up_the_main_string
store_pc_file
end
|
#
The main idea for this method is to turn symbol input such as :htop, or pseudo-symbols such as ‘:htop’, into the real dataset.
#
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 126
def sanitize_the_input_hash(
i = @input_hash
)
if i.is_a?(Symbol) or (i.is_a?(String) and i.start_with?(':'))
require 'rbt/requires/require_the_installer_class.rb'
@input_hash = action(:installer, i, :do_not_run_yet)
set_pkgconfig_filename(i)
end
end
|
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 99
def set_input_hash(
i = {}
)
i = i.first if i.is_a? Array
if i.is_a?(String) and i.start_with?(':')
cookbook_dataset = action(:sanitize_cookbook, i.delete(':'))
i = {
prefix: cookbook_dataset.prefix_to_use?,
pkgconfig_filename: cookbook_dataset.prefix_to_use?+
'/lib/pkgconfig/'+cookbook_dataset.real_short_name?.to_s+'.pc',
version: cookbook_dataset.program_version?,
description: cookbook_dataset.short_description?
}
end
@input_hash = i
sanitize_the_input_hash
end
|
#set_pkgconfig_filename(i) ⇒ Object
#
set_pkgconfig_filename
#
174
175
176
177
178
179
180
181
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 174
def set_pkgconfig_filename(i)
i = i.to_s.dup
i = rds(i).dup
if i.start_with? ':'
i[0,1] = ''
end
@pkgconfig_filename = i
end
|
#set_program_version(i) ⇒ Object
236
237
238
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 236
def set_program_version(i)
@program_version = i
end
|
#short_description? ⇒ Boolean
225
226
227
228
229
230
231
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 225
def short_description?
if @input_hash.is_a? Hash
@description
elsif @input_hash.is_a? ::RBT::Action::Installer
@input_hash.short_description?
end
end
|
#store_pc_file ⇒ Object
#
store_pc_file
We must ensure that the pkgconfig/ directory also exists.
#
263
264
265
266
267
268
269
270
271
272
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 263
def store_pc_file
what = main_string?
into = File.basename(pkgconfig_filename?.dup)
into << '.pc' unless into.end_with? '.pc'
ensure_that_the_pkgconfig_directory_exists_for(into)
opne "Now storing into the file `#{sfile(into)}`."
opne 'This .pc file could be moved onto'
opne sdir(pkgconfig_filename?)
store_what_into(what, into)
end
|
#store_this_string? ⇒ Boolean
Also known as:
main_string?
78
79
80
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 78
def store_this_string?
@store_this_string
end
|
#word_wrapped_description? ⇒ Boolean
#
word_wrapped_description? (wrap tag)
Wrap the description a bit.
#
252
253
254
255
256
|
# File 'lib/rbt/generate_files/create_pkgconfig_file.rb', line 252
def word_wrapped_description?
_ = short_description?.tr(N, ' ').squeeze(' ')
_ = word_wrap(_, 68) if _.size > 66
return _
end
|