Class: RBT::Cookbooks::CreateEbuild
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/linux/gentoo/create_ebuild.rb
Overview
RBT::Cookbooks::CreateEbuild
Constant Summary
collapse
- DEFAULT_PROGRAM =
'ruby'
- DIRECTORY_FOR_EBUILDS =
#
DIRECTORY_FOR_EBUILDS
Where to store the ebuilds.
#
"#{RBT.rbt_log_dir?}DirectoryForEbuilds/"
- PORTAGE_BASE_DIRECTORY =
#
PORTAGE_BASE_DIRECTORY
Where portage normally keeps an .ebuild file.
#
'/usr/local/portage/'
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?, #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(i = nil, run_already = true) ⇒ CreateEbuild
#
initialize
The first argument should contain the dataset.
#
65
66
67
68
69
70
71
72
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 65
def initialize(
i = nil,
run_already = true
)
reset
set_data(i)
run if run_already
end
|
Instance Method Details
#data? ⇒ Boolean
107
108
109
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 107
def data?
@data
end
|
#do_create_the_ebuild ⇒ Object
#
do_create_the_ebuild
This method will create the specific .ebuild file in question.
#
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
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 146
def do_create_the_ebuild
license = ''.dup license = licence? unless licence?.empty?
string = ''.dup
string <<
'EAPI="5"
PYTHON_COMPAT=( python2_7 )
AUTOTOOLS_AUTORECONF=true
inherit autotools-utils linux-info python-any-r1
ARTS_REQUIRED="never"
MY_P="'+short_name?+'"
DESCRIPTION="'+data?.description?+'"
HOMEPAGE="'+homepage?.to_s+'"
SRC_URI="'+url1?+'"
LICENSE="'+license+'"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="debug doc"
need-kde 3.5
S="${WORKDIR}/${MY_P}"
DEPEND="'+required_deps_on?+'"
RDEPEND="${DEPEND}
x11-libs/qt-svg:4[debug?]"
src_compile () {
mkdir build
cd build
cmake ..
emake || die "emake failed"
}
src_install () {
cd build
emake DESTDIR=${D} install || die "emake install failed"
dodoc ChangeLog README TODO
}
'
write_what_into(string, store_where?) opne "Created ebuild for #{program?} at `#{sfile(store_where?)}`."
end
|
#guess_program_name ⇒ Object
#
guess_program_name
This method will try to guess the program name.
#
237
238
239
240
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 237
def guess_program_name
_ = data?.short_name?
set_program_name(_)
end
|
#homepage? ⇒ Boolean
217
218
219
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 217
def homepage?
data?.homepage?
end
|
#is_on_gentoo? ⇒ Boolean
245
246
247
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 245
def is_on_gentoo?
false end
|
#license? ⇒ Boolean
Also known as:
licence?
137
138
139
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 137
def license?
data?.license?
end
|
#notify_the_user_what_we_are_about_to_do ⇒ Object
#
notify_the_user_what_we_are_about_to_do
#
224
225
226
227
228
229
230
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 224
def notify_the_user_what_we_are_about_to_do
e
cliner {
opne 'Now creating ebuild for '+sfancy(@program_name)+' in'
opne " `#{sfile(store_where?)}`."
}; e
end
|
#program_name? ⇒ Boolean
Also known as:
program?
252
253
254
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 252
def program_name?
@program_name
end
|
#required_deps_on? ⇒ Boolean
203
204
205
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 203
def required_deps_on?
data?.required_deps_on?.to_s
end
|
#reset ⇒ Object
77
78
79
80
81
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 77
def reset
super()
infer_the_namespace
set_program_name end
|
#set_data(i = nil) ⇒ Object
#
set_data
The input should be a Hash.
#
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 88
def set_data(i = nil)
i = DEFAULT_PROGRAM if i.nil?
i = RBT::Cookbooks::SanitizeCookbook.new(i).dataset? if i.is_a? String
if i.is_a? Array
if i.empty? i = RBT::Cookbooks::SanitizeCookbook.new(DEFAULT_PROGRAM).dataset?
else
i = i.join(' ')
end
end
@data = i
if @data.is_a? Hash
set_program_name(@data['short_name'])
end
end
|
#set_program_name(i = '') ⇒ Object
114
115
116
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 114
def set_program_name(i = '')
@program_name = i
end
|
#short_name? ⇒ Boolean
130
131
132
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 130
def short_name?
data?.short_name?
end
|
#store_where? ⇒ Boolean
#
store_where?
We could also store in the directory PORTAGE_BASE_DIRECTORY.
#
#url1? ⇒ Boolean
210
211
212
|
# File 'lib/rbt/linux/gentoo/create_ebuild.rb', line 210
def url1?
data?.url1?
end
|