Class: RBT::Cookbooks::Convert_PKGBUILD

Inherits:
Base show all
Defined in:
lib/rbt/utility_scripts/convert_pkgbuild.rb

Constant Summary collapse

DEFAULT_FILE =
#

DEFAULT_FILE

#
"#{HOME_DIRECTORY_FOR_USER_X}DATA/PC/OS/LINUX/DISTRIBUTIONEN/ARCH/example.pkgbuild"
HASH_MAP_PKGBUILD_VARIABLE_TO_COOKBOOK_ENTRY =
#

HASH_MAP_PKGBUILD_VARIABLE_TO_COOKBOOK_ENTRY

Use a mapping, to map from PKGBUILD variables to our specific Cookbook entries. This may have to be updated every now and then.

#
{
  'makedepends'  => 'required_deps_on',
  'pkgver'       => 'program_version', # The version of the package.
  'url'          => 'url1',
  'license'      => 'license',
  'pkgname'      => 'program_name', # This is program_name.
  'pkgdesc'      => 'description',
  'depends'      => 'required_deps_on',
  'builddepends' => 'build_deps_on',
  'optdepends'   => 'recommended_deps_on'
}
H =

Easier alias.

HASH_MAP_PKGBUILD_VARIABLE_TO_COOKBOOK_ENTRY
ARRAY_ENTRIES_WITHOUT_CORRESPONDING_VERSIONS =
#

The following entries have no corresponding version.

epoch is an integer value, specific to Arch Linux, representing what ‘lifetime’ to compare version numbers against. This value allows overrides of the normal version comparison rules for packages that have inconsistent version numbering, require a downgrade, change numbering schemes, etc. By default, packages are assumed to have an epoch value of 0. Do not use this unless you know what you are doing.

  • arch is an array of architectures that the PKGBUILD file is known

to build and work on. Currently, it should contain i686 or x86_64 or any for architecture-independent packages.

#
%w(
  pkgrel
  epoch
)

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_options, #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_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_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_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_pkgbuild = DEFAULT_FILE, run_already = true) ⇒ Convert_PKGBUILD

#

initialize

#


73
74
75
76
77
78
79
80
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 73

def initialize(
    this_pkgbuild = DEFAULT_FILE,
    run_already   = true
  )
  reset
  read_data_from(this_pkgbuild)
  run if run_already
end

Instance Method Details

#hash?Boolean Also known as: hash

#

hash?

#

Returns:

  • (Boolean)


142
143
144
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 142

def hash?
  @hash
end

#process_dataObject

#

process_data

We work through @data here.

#


110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 110

def process_data
  @data.each { |line|
    case line
    when /^(pkgname)/, /^(pkgver)/, /^(pkgdesc)/,
         /^(url)/,/^(license)/,/^(depends)/,
         /^(makedepends)/
      @hash[ H[$1] ] = split(line)
    end
  }
  _ = action(:SanitizeCookbook, @hash['program_name']) { :fast }
  _.clear(false)
  _.merge(@hash)
  _.set_archive_type('.tar.gz') # hardcoded for now.
cliner
e
e tomato("DEBUG: STILL NOT FINISHED. SORRY.")
e
cliner
end

#read_data_from(i = DEFAULT_FILE) ⇒ Object

#

read_data_from

Sets @data variable.

#


101
102
103
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 101

def read_data_from(i = DEFAULT_FILE)
  @data = File.readlines(i).map(&:chomp)
end

#resetObject

#

reset

#


85
86
87
88
89
90
91
92
93
94
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 85

def reset
  # ======================================================================= #
  # === @query
  # ======================================================================= #
  @query = nil
  # ======================================================================= #
  # === @hash
  # ======================================================================= #
  @hash = {}
end

#runObject

#

run

#


149
150
151
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 149

def run
  process_data
end

#split(i) ⇒ Object

#

split

Easier to use this method to split at = characters found.

#


135
136
137
# File 'lib/rbt/utility_scripts/convert_pkgbuild.rb', line 135

def split(i)
  i.split('=')[1]
end