Class: RBT::Cookbooks::IncrementProgramVersion
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/utility_scripts/increment_program_version/constants.rb,
lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb
Overview
RBT::Cookbooks::IncrementProgramVersion
Constant Summary
collapse
- DEFAULT_PROGRAM =
'php'
- TRY_TO_REPACKAGE_INTO_TAR_XZ_FORMAT =
#
If the following constant is true then incremented programs will be repackaged into .tar.xz, unless they are already in this format.
This constant is thus mostly a convenience setting, if you wish to keep archives in .tar.xz, which I do.
#
true
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::Cookbooks::IncrementProgramVersion[] ========================================================================= #.
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, #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
34
35
36
37
38
39
40
41
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 34
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
#
RBT::Cookbooks::IncrementProgramVersion[]
#
414
415
416
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 414
def self.[](i = '')
new(i)
end
|
Instance Method Details
#assign_url_to_dataset_url(use_this_dataset) ⇒ Object
#
assign_url_to_dataset_url
#
299
300
301
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 299
def assign_url_to_dataset_url(use_this_dataset)
@url = use_this_dataset.url1?
end
|
#check_for_incremented_remote_versions(i = url?
) ⇒ Object
#
check_for_incremented_remote_versions
This is the method that will check for the remote versions.
#
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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
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
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 101
def check_for_incremented_remote_versions(
i = url?
)
if i.nil? or i.empty?
e rev+'No '+steelblue('url1')+rev+' entry could be found. '+
lightblue('Is the .yml file correct?')
return
end
original_version = ProgramInformation.return_version(i)
e "#{rev}The input-version was `#{sfancy(original_version)}#{rev}`."
original_split = original_version.split('.')
splitted = original_split
splitted_last_part = splitted.last
if splitted_last_part
if splitted_last_part.start_with? '0'
new_number = splitted_last_part.to_i + 1
last_part = new_number.to_s.rjust(splitted_last_part.to_s.size,'0')
else
last_part = splitted_last_part.to_i + 1 end
else
e "A #{steelblue('nil value')} occurred so something must have went wrong."
pp splitted
end
splitted[-1] = last_part.to_s
minor_increment = splitted.join('.')
url_for_minor_version = i.gsub(/#{original_version}/, minor_increment)
try_this_URL(url_for_minor_version)
case @use_this_program_to_query_whether_the_remote_URL_exists
when :wget
if Object.const_defined? :Wget
does_it_exist = Wget.check_if_remote_file_exists(url_for_minor_version)
if does_it_exist register_and_install_this_program(url_for_minor_version)
else
e rev+'There was '+seagreen('no minor release')+rev+
' for `'+
sfancy(url_for_minor_version)+rev+
'`.'
end
else
report_that_wget_is_missing_then_exit
end
when :curl
cmd = "curl -Is #{url_for_minor_version}"
result = `#{cmd}`
does_it_exist = false
if result.include? "302 Found\r\n"
does_it_exist = true
end
if does_it_exist register_and_install_this_program(url_for_minor_version)
else
e rev+'There was '+seagreen('no minor release')+rev+
' for `'+
sfancy(url_for_minor_version)+rev+'`.'
end
end
splitted = (original_version+'.1').split('.')
url_for_subversion = splitted.join('.')
url_for_subversion = i.gsub(/#{original_version}/, url_for_subversion)
try_this_URL(url_for_subversion)
subversion_version_exists = Wget.check_if_remote_file_exists(url_for_subversion)
if subversion_version_exists
register_and_install_this_program(url_for_subversion)
else
e rev+'There was '+seagreen('no subversion release')+
rev+' release for '+sfancy(url_for_subversion)+rev+'.'
end
last_part = splitted.last.to_i + 1 splitted[-1] = last_part.to_s
minor_increment = splitted.join('.')
url_for_minor_version = i.gsub(/#{original_version}/, minor_increment)
try_this_URL(url_for_minor_version)
if Object.const_defined? :Wget
does_it_exist = Wget.check_if_remote_file_exists(url_for_minor_version)
if does_it_exist register_and_install_this_program(url_for_minor_version)
else
e "#{rev}There was #{seagreen('no minor release')} #{rev}for `"\
"#{sfancy(url_for_minor_version)}#{rev}`."
end
else
report_that_wget_is_missing_then_exit
end
splitted = original_version.split('.')
splitted[1] = (splitted[1].to_i + 1).to_s
splitted[-1] = '0' middle_increment = splitted.join('.')
url_for_middle_version = i.gsub(/#{original_version}/, middle_increment)
_ = "/#{original_split[0]}.#{original_split[1]}/"
if url_for_middle_version.include? _ url_for_middle_version.gsub!(/#{_}/,"/#{splitted[0]}.#{splitted[1]}/")
end
try_this_URL(url_for_middle_version)
middle_version_exists = Wget.check_if_remote_file_exists(url_for_middle_version)
if middle_version_exists
register_and_install_this_program(url_for_middle_version)
else
e rev+'There was '+seagreen('no middle release')+
rev+' release for '+sfancy(url_for_middle_version)+rev+
'.'
end
splitted = original_version.split('.')
splitted[0] = splitted[0].to_i + 1
splitted[1] = '0' splitted[-1] = '0' major_increment = splitted.join('.')
url_for_major_version = i.gsub(/#{original_version}/, major_increment)
_ = "/#{original_split[0]}.#{original_split[1]}/"
if url_for_major_version.include? _ url_for_major_version.gsub!(/#{_}/,"/#{splitted[0]}.#{splitted[1]}/")
end
try_this_URL(url_for_major_version)
major_version_exists = Wget.check_if_remote_file_exists(url_for_major_version)
if major_version_exists
register_and_install_this_program(url_for_major_version)
else
e "#{rev}There was #{seagreen('no major release')} #{rev}for "\
"#{sfancy(url_for_major_version)}#{rev}."
end
end
|
#check_for_missing_homepage_entry ⇒ Object
#
check_for_missing_homepage_entry
#
306
307
308
309
310
311
312
313
314
315
316
317
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 306
def check_for_missing_homepage_entry
homepage = @dataset.homepage?.to_s
if homepage.empty?
if is_on_roebe?
e "#{rev}The program `#{sfancy(short_name?)}` #{rev}has no "\
"#{orange('homepage: entry')}#{rev}. Consider adding one."
end
end
end
|
#dataset? ⇒ Boolean
329
330
331
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 329
def dataset?
@dataset
end
|
#determine_dataset(i = input?
) ⇒ Object
360
361
362
363
364
365
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 360
def determine_dataset(
i = input?
)
@dataset = action(:SanitizeCookbook, i) { :fast }
check_for_missing_homepage_entry
end
|
#determine_whether_the_program_exists_or_not ⇒ Object
#
determine_whether_the_program_exists_or_not
#
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 336
def determine_whether_the_program_exists_or_not
_ = program_name?
if RBT.does_include? _
e rev+'The program '+sfancy(_)+rev+
' is included. '+
steelblue('This class can thus proceed. ')+
gold(
cheering_ascii_person
)
determine_dataset(_)
assign_url_to_dataset_url(dataset?)
check_for_incremented_remote_versions else
e "The program #{sfancy(_)} is #{swarn('NOT')} included. "\
"Can not proceed."
end
end
|
#exit_program ⇒ Object
281
282
283
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 281
def exit_program
exit
end
|
92
93
94
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 92
def input?
@input
end
|
#register_and_install_this_program(i, shall_we_exit = true) ⇒ Object
#
register_and_install_this_program
This method will delegate into class RBT::UpdateEntry for updating the specific program at hand.
#
390
391
392
393
394
395
396
397
398
399
400
401
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 390
def register_and_install_this_program(
i, shall_we_exit = true
)
e "#{rev}We found a match towards the URL `#{simp(i)}#{rev}`."
RBT::UpdateEntry.new(i) {{
repackage_into_tar_xz_format: @try_to_repackage_into_tar_xz_format
}}
exit_program if shall_we_exit
end
|
#report_that_wget_is_missing_then_exit ⇒ Object
#
report_that_wget_is_missing_then_exit
#
288
289
290
291
292
293
294
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 288
def report_that_wget_is_missing_then_exit
e 'Wget is unavailable. Please install it via:'
e
e ' gem install wget'
e
exit
end
|
#report_the_main_namespace ⇒ Object
#
report_the_main_namespace
#
370
371
372
373
374
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 370
def report_the_main_namespace
opnn { :no_trailing }
e
e
end
|
#reset ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 46
def reset
super()
infer_the_namespace
@try_to_repackage_into_tar_xz_format = TRY_TO_REPACKAGE_INTO_TAR_XZ_FORMAT
@use_this_program_to_query_whether_the_remote_URL_exists = :curl
try_to_require_wget
end
|
#run ⇒ Object
406
407
408
409
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 406
def run
report_the_main_namespace
determine_whether_the_program_exists_or_not
end
|
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 66
def set_input(
i = DEFAULT_PROGRAM
)
i = i.first if i.is_a? Array
if i.nil? if return_pwd.include? archive_dir?
i = Dir['*'].first if i
if i.include? '-'
i = ProgramInformation.return_name(i)
end
else
e 'There does not appear to be any file in that directory.'
i = nil
end
else
i = DEFAULT_PROGRAM
end
end
i = i.to_s.dup.delete('-_').downcase
@input = i
end
|
#short_name? ⇒ Boolean
322
323
324
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 322
def short_name?
@dataset.short_name?
end
|
#try_this_URL(this_URL) ⇒ Object
379
380
381
382
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 379
def try_this_URL(this_URL)
e "Now trying the following URL: "\
"#{sfancy(this_URL)}"
end
|
#url? ⇒ Boolean
274
275
276
|
# File 'lib/rbt/utility_scripts/increment_program_version/increment_program_version.rb', line 274
def url?
@url
end
|