Class: RBT::CreateBashScripts

Inherits:
Base show all
Defined in:
lib/rbt/generate_files/create_bash_scripts.rb

Constant Summary collapse

WHERE_TO =
#

WHERE_TO

#
"#{DEPOT_DIR}Information/"

Constants inherited from LeanPrototype

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

Methods inherited from LeanPrototype

#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, #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(for_this_program = nil, run_already = true) ⇒ CreateBashScripts

#

initialize

#


27
28
29
30
31
32
33
34
35
36
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 27

def initialize(
    for_this_program = nil,
    run_already      = true
  )
  reset
  set_for_this_program(
    for_this_program
  )
  run if run_already
end

Instance Method Details

#copy_archive_shell_scriptObject

#

copy_archive_shell_script

#


60
61
62
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 60

def copy_archive_shell_script
  copy '$LINUX/SHELL/SCRIPTS/extract_archive.sh', WHERE_TO
end

#create_shellscript(for_this_program = @this_program) ⇒ Object

#

create_shellscript

This delegates the task to RBT::GenerateShellscript.

bl $RBT/utility_scripts/generate_shellscript.rb
#


96
97
98
99
100
101
102
103
104
105
106
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 96

def create_shellscript(
    for_this_program = @this_program
  )
  @cookbook_dataset = action(:SanitizeCookbook, for_this_program)
  _ = GenerateShellscript.new(
    @cookbook_dataset, true, false, false
  ) {{
    also_run_at_once: false
  }}
  return _.dataset+N
end

#exit_programObject

#

exit_program

#


83
84
85
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 83

def exit_program
  exit
end

#notify_user(file) ⇒ Object

#

notify_user

Use this method to notify the user.

#


69
70
71
72
73
74
75
76
77
78
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 69

def notify_user(file)
  cliner
  opne sfancy('Finished creation! The file was: '+N+'  ')+sfile(file)
  e
  opne 'If you want to cd to the directory, use this command:'
  opne sfancy('  cd ')+sdir('/System/Settings/Scripts/')
  opne 'And if you want to source this file, use this command:'
  e sfancy('  source ')+sfile(file)
  exit_program
end

#resetObject

#

reset

#


41
42
43
44
45
46
47
48
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 41

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @cookbook_dataset
  # ======================================================================= #
  @cookbook_dataset = action(:SanitizeCookbook) { :dont_run_yet }
end

#runObject

#

run

Everything is bundled here in this method.

#


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
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 113

def run
  reset
  copy_archive_shell_script
  e
  dir = system_directory?+'Settings/Scripts/'
  file = dir+'bash_programs_rc'
  cliner {
    e sfancy('Now creating a bash file. The name and file path will be:')
    e '  '+sfile(file)
  }
  create_directory(dir) unless File.exist?(dir) # create dir if it doesnt exist yet.
  remove_file(file) if File.exist? file
  string = ''.dup
  # ======================================================================= #
  # First, lets collect which programs actually are available. This will 
  # be an array.
  # ======================================================================= #
  string << '# Store all available programs in an array, so that we '+N
  string << '# can use this information in our shell scripts lateron.'+N
  string << 'programs=('
  all_programs.each { |program|
    string << '  "'+program.to_s+'"'+N
  }; string << ')'+N+N
  # ======================================================================= #
  # Second, we write their info :>
  # It will lead to a lot of "c_" functions.
  # 
  # Example entries start like so:
  #
  #   function c_python() {
  #
  # ======================================================================= #
  all_programs.each { |program|
    opne "Creating a shellscript for `#{sfancy(program)}` next."
    string << create_shellscript(program) # This is defined in this file here.
  }
  write_what_into(string, file)
  # ======================================================================= #
  # The following 3 lines are specific for my machine.
  # ======================================================================= #
  _ = ENV['LINUX'].to_s+'/SHELL/bash_programs_rc'
  remove_file(_) if File.exist? _
  write_what_into(string, _)
  # ======================================================================= #
  # At this point, all data has been written and we can notify the user
  # about it.
  # ======================================================================= #
  notify_user(file)
end

#set_for_this_program(i) ⇒ Object

#

set_for_this_program

#


53
54
55
# File 'lib/rbt/generate_files/create_bash_scripts.rb', line 53

def set_for_this_program(i)
  @this_program = i
end