Class: RBT::Linux::Slackware::GenerateSlackDescFile
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/linux/slackware/generate_slack_desc_file.rb
Overview
RBT::Linux::Slackware::GenerateSlackDescFile
Constant Summary
collapse
- USE_THIS_FILE_SUFFIX =
#
USE_THIS_FILE_SUFFIX
A proper slack-desc file ends with a .slack-desc suffix.
#
'.slack-desc'
- CHARACTERS_PER_LINE_MAXIMUM =
#
CHARACTERS_PER_LINE_MAXIMUM
#
68
- HANDY_RULER =
' |-----handy-ruler------------------------------------------------------|'
RBT::LeanPrototype::ALL_COLOUR_METHODS, RBT::LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, RBT::LeanPrototype::DAY_NAMES, RBT::LeanPrototype::NAMESPACE, RBT::LeanPrototype::SILENT_REDIRECTION
Class Method Summary
collapse
-
.[](i = ARGV, &block) ⇒ Object
# === RBT::Linux::Slackware::GenerateSlackDescFile[] ========================================================================= #.
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(this_program = ARGV, run_already = true, &block) ⇒ GenerateSlackDescFile
#
initialize
The first argument should be the name of the file in question.
#
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 59
def initialize(
this_program = ARGV,
run_already = true,
&block
)
reset
if block_given?
yielded = yield
case yielded
when :use_short_name
@use_long_name_or_short_name = :short_name
when :also_show_the_content_of_the_generated_file
@show_the_content_of_the_generated_file = true
when :also_show_the_content_of_the_generated_file_if_on_roebe
if is_on_roebe?
@show_the_content_of_the_generated_file = true
end
end
end
set_this_program(this_program)
run if run_already
end
|
Class Method Details
.[](i = ARGV, &block) ⇒ Object
#
RBT::Linux::Slackware::GenerateSlackDescFile[]
#
345
346
347
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 345
def self.[](i = ARGV, &block)
new(i, &block)
end
|
Instance Method Details
#append_the_homepage_if_it_exists ⇒ Object
#
append_the_homepage_if_it_exists
#
236
237
238
239
240
241
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 236
def append_the_homepage_if_it_exists
homepage = homepage?
if homepage and !homepage.empty?
@_[-1] << " Homepage: #{homepage}"
end
end
|
#chunk(string, size = CHARACTERS_PER_LINE_MAXIMUM) ⇒ Object
#
chunk
Split at 80 characters.
#
172
173
174
175
176
177
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 172
def chunk(
string, size = CHARACTERS_PER_LINE_MAXIMUM
)
size -= length_of_program_name?
string.gsub(/(.{1,#{size}})(\s+|$)/, "\\1\n")
end
|
#consider_showing_the_content_of_the_generated_file ⇒ Object
#
consider_showing_the_content_of_the_generated_file
#
298
299
300
301
302
303
304
305
306
307
308
309
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 298
def consider_showing_the_content_of_the_generated_file
if @show_the_content_of_the_generated_file
_ = path?
if File.exist?(_)
e
e "Showing the content of the file #{sfile(_)}:"
e
e File.read(_)
e
end
end
end
|
#create_slack_desk_file(into = path?
) ⇒ Object
#
create_slack_desk_file
#
281
282
283
284
285
286
287
288
289
290
291
292
293
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 281
def create_slack_desk_file(
into = path?
)
opnn { :no_trailing }
e
e
e "#{rev}Now creating a #{springgreen('slack-desc file')}#{rev} for "+
"#{File.basename(into).delete_suffix('.slack-desc')}"
e "#{rev}(#{sfile(into)}#{rev})."
e
what = @_.join(N)+N write_what_into(what, into)
end
|
#description? ⇒ Boolean
148
149
150
151
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 148
def description?
return @dataset.description?.to_s.dup.
tr("\n",' ') end
|
#file? ⇒ Boolean
321
322
323
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 321
def file?
@dataset.file?
end
|
#generate_main_string ⇒ Object
#
generate_main_string
This will generate the main String, into the variable @_.
#
184
185
186
187
188
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
221
222
223
224
225
226
227
228
229
230
231
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 184
def generate_main_string
result = ''.dup
_ = name_of_program?
_ = _.dup
if short_description?
_ << " (#{short_description?})" unless short_description?.empty?
else
e swarn('No short_description entry could be found for:')
e steelblue(" #{_}")
if description? and !description?.empty?
opne 'Substituting via the :description entry for this instead.'
_ << " (#{description?})"
end
end
_ << N
result << _
result << N
result << chunk(description?)
if result.is_a? String
result = result.split(N)
end
@_ << result
@_.flatten!
(11 - @_.size).times {
@_ << ''
}
@_.map! {|line|
line = line.dup if line.frozen?
if line.empty?
line.prepend("#{program_name?}:")
else
line.prepend("#{program_name?}: ")
end
line
}
append_the_homepage_if_it_exists
end
|
#homepage? ⇒ Boolean
163
164
165
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 163
def homepage?
@dataset.send(__method__)
end
|
#length_of_program_name? ⇒ Boolean
#
length_of_program_name?
#
141
142
143
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 141
def length_of_program_name?
@this_program.size
end
|
#obtain_main_dataset(i = program?)
) ⇒ Object
314
315
316
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 314
def obtain_main_dataset(i = program?)
@dataset = action(:SanitizeCookbook, i) { :fast }
end
|
#path? ⇒ Boolean
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 260
def path?
path = return_pwd.dup
case @use_long_name_or_short_name when :long_name,
:default path << return_name_of_slack_desc_file
when :short_name
path << return_short_name_of_slack_desc_file
end
path
end
|
#reset ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 97
def reset
super()
infer_the_namespace
@use_long_name_or_short_name = :long_name
@_ = []
@show_the_content_of_the_generated_file = false
end
|
#return_handy_ruler ⇒ Object
328
329
330
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 328
def return_handy_ruler
HANDY_RULER
end
|
#return_name_of_slack_desc_file ⇒ Object
#
return_name_of_slack_desc_file
#
246
247
248
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 246
def return_name_of_slack_desc_file
program_name?+USE_THIS_FILE_SUFFIX
end
|
#return_short_name ⇒ Object
Also known as:
return_short_name_of_slack_desc_file
253
254
255
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 253
def return_short_name
USE_THIS_FILE_SUFFIX.delete('.')
end
|
#run ⇒ Object
335
336
337
338
339
340
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 335
def run
obtain_main_dataset
generate_main_string
create_slack_desk_file
consider_showing_the_content_of_the_generated_file
end
|
#set_this_program(i) ⇒ Object
123
124
125
126
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 123
def set_this_program(i)
i = i.first if i.is_a? Array
@this_program = i
end
|
#short_description? ⇒ Boolean
156
157
158
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 156
def short_description?
@dataset.send(__method__)
end
|
#this_program? ⇒ Boolean
Also known as:
name?, program?, name_of_program?, program_name?
131
132
133
|
# File 'lib/rbt/linux/slackware/generate_slack_desc_file.rb', line 131
def this_program?
@this_program
end
|