Class: RBT::Commandline
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/commandline/commandline.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_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, #otomato, #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_name, #return_program_name_for_gobolinux_systems, #return_program_name_via_program_information, #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, #rpn, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_colours, #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 = ARGV, run_already = true) ⇒ Commandline
40
41
42
43
44
45
46
47
|
# File 'lib/rbt/commandline/commandline.rb', line 40
def initialize(
i = ARGV,
run_already = true
)
RBT.set_commandline_options(i) reset
run if run_already
end
|
Instance Method Details
#commandline_arguments? ⇒ Boolean
#
commandline_arguments?
#
70
71
72
|
# File 'lib/rbt/commandline/commandline.rb', line 70
def commandline_arguments?
::RBT.commandline_arguments?
end
|
#create_new_cookbook_for(i) ⇒ Object
#
create_new_cookbook_for
This method can create a new cookbook file - but only if the program has not yet been registered as part of RBT.
#
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|
# File 'lib/rbt/commandline/commandline.rb', line 225
def create_new_cookbook_for(i)
require 'rbt/cookbooks/create_cookbook_yaml_file/create_cookbook_yaml_file.rb'
_ = RBT.remove_archive_from_the_end(File.basename(i))
program_name = ProgramInformation.return_program_name(_)
if RBT.is_a_registered_program? program_name
e "The program #{program_name} is registered."
else e rev+'The program '+sfancy(program_name)+
rev+' is not registered.'
e rev+'Thus, delegating towards class '+
steelblue('RBT::Cookbooks::CreateCookbookYamlFile')+
'.'
mkdir(src_dir?+program_name)
RBT::Cookbooks::CreateCookbookYamlFile.new(i) { :interactive_mode }
end
end
|
#do_compile_these_programs(i = commandline_arguments?
) ⇒ Object
#
do_compile_these_programs
This method can be used to compile
#
269
270
271
272
273
274
275
|
# File 'lib/rbt/commandline/commandline.rb', line 269
def do_compile_these_programs(
i = commandline_arguments?
)
require 'rbt/requires/require_the_installer_class.rb'
i = [i].flatten
action(:installer, i)
end
|
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
|
# File 'lib/rbt/commandline/commandline.rb', line 127
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i when /^-?-?colour(_|-)?make(_|-)?install$/i
require 'rbt/make/colour_make_install.rb'
action(:ColourMakeInstall) { :run }
when /^programs(_|-)?dir\??$/i,
/^programs(_|-)?directory\??$/i
e steelblue(RBT.programs_directory?)
exit
when *REGEXES_TO_SHOW_THE_SOURCE_DIRECTORY
e sdir(source_directory?)
remove_this_commandline_argument(i, commandline_arguments?)
exit
when /^-?-?colour(_|-)?make$/i
require 'rbt/make/make.rb'
RBT::Make.new { :run }
when *ARRAY_HELP_VERSION_OPTIONS
require 'rbt/version/version.rb'
RBT.report_rbt_version(:also_show_when_the_project_was_last_updated)
exit
when /^-?-?is(_|-)?the(_|-)?gobolinux(_|-)?configuration(_|-)?enabled\??$/i
e 'Do we use the GoboLinux configuration: '+
steelblue(
RBT.configuration?.enable_gobolinux_config.to_s
)
when /^-?-?available(_|-)?aliases\??$/i
pp RBT.hash_aliases_to_the_available_programs?
remove_this_commandline_argument(i, commandline_arguments?)
when /^-?-?be(_|-)?verbose$/
pp RBT.configuration?.be_verbose
remove_this_commandline_argument(i, commandline_arguments?)
else
if i.start_with?('http')
create_new_cookbook_for(i)
else
@let_rbt_compile_handle_the_input = true
end
end
end
end
|
#menu_for_the_commandline_arguments_as_string(i = commandline_arguments?
) ⇒ Object
#
menu_for_the_commandline_arguments_as_string
This menu is specifically used to handle the full commandline argument.
#
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# File 'lib/rbt/commandline/commandline.rb', line 79
def menu_for_the_commandline_arguments_as_string(
i = commandline_arguments?
)
require 'rbt/requires/require_actions.rb'
@let_rbt_compile_handle_the_input = false
_ = i.join(' ').strip
case _ when /^-?-?download (.+)$/
require_class_installer
action(:Installer, $1.to_s.dup) { :do_not_run_yet }.download
when /^-?-?extract(=| )(.+)$/
require 'rbt/toplevel_methods/extract.rb'
require 'rbt/requires/require_the_cookbook_class.rb'
target_program = $2.to_s.dup
if File.exist? target_program
RBT.(target_program)
elsif File.exist? File.basename(target_program)
RBT.(
File.basename(target_program)
)
else
dataset = action(:SanitizeCookbook, target_program) { :fast }
target_program = dataset.program_path?
if File.exist? target_program
RBT.(target_program)
else
opne "No file could be found at #{steelblue(target_program)}."
opne 'Perhaps consider downloading the program if it is'
opne 'registered in the RBT project.'
end
end
else
@let_rbt_compile_handle_the_input = true
end
end
|
#require_class_compile ⇒ Object
#
require_class_compile
#
63
64
65
|
# File 'lib/rbt/commandline/commandline.rb', line 63
def require_class_compile
require 'rbt/requires/require_the_installer_class.rb'
end
|
#reset ⇒ Object
52
53
54
55
56
57
58
|
# File 'lib/rbt/commandline/commandline.rb', line 52
def reset
super()
@let_rbt_compile_handle_the_input = false
end
|
#run ⇒ Object
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
|
# File 'lib/rbt/commandline/commandline.rb', line 245
def run
menu_for_the_commandline_arguments_as_string
if @let_rbt_compile_handle_the_input
(commandline_arguments?)
end
if @let_rbt_compile_handle_the_input
require_class_compile
do_compile_these_programs(commandline_arguments?)
end
end
|