Class: RBT::Action::SedWrapper
- Inherits:
-
RBT::Action
show all
- Defined in:
- lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb
Overview
Constant Summary
collapse
- DEFAULT_SED_COMMAND =
"sed -i 's/unsigned short/char16_t/' Source/JavaScriptCore/API/JSStringRef.h Source/WebKit2/Shared/API/c/WKString.h"
- SED_COMMAND2 =
"sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c"
- SED_COMMAND3 =
"sed -i '/-fforce-mem/d' configure"
- REPORT_INPUT_COMMAND =
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 = ARGV) ⇒ Object
# === RBT::Action::SedWrapper[] ========================================================================= #.
Instance Method Summary
collapse
#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(i = DEFAULT_SED_COMMAND, run_already = true) ⇒ SedWrapper
56
57
58
59
60
61
62
63
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 56
def initialize(
i = DEFAULT_SED_COMMAND,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
RBT::Action::SedWrapper[]
#
224
225
226
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 224
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#batch_modify_the_files ⇒ Object
#
batch_modify_the_files
#
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
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 173
def batch_modify_the_files
what = ''.dup @input.delete!("'")
if @input.start_with?('s/')
@input[0,1] = ''
end
splitted = @input.split('/').reject(&:empty?) replace_this = splitted.first
with_that = splitted[1]
case with_that
when 'd'
if @input.count('/') < 3
with_that = '' end
end
work_on_these_files.each {|this_file|
opne "#{rev}Working on the file `#{sfile(this_file)}`."
try_to_read_in_this_file(this_file) if @dataset
@dataset.each {|line|
if line.include? replace_this
line.gsub!(/#{replace_this}/, with_that)
end
what << line
}
opne 'Storing into the file `'+sfile(this_file)+'` now. '\
'(Substitution on: '+sfancy(replace_this)+'; '\
'Replacement on: '+sfancy(with_that)+')'
save_what_into(what, this_file)
what = '' end
}
end
|
#determine_on_which_files_to_work ⇒ Object
#
determine_on_which_files_to_work
#
125
126
127
128
129
130
131
132
133
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 125
def determine_on_which_files_to_work
_ = @input if _.include? "'"
rindex = _.rindex "'"
string_for_files = _[(rindex+1)..-1]
set_work_on_these_files string_for_files.strip.split(' ').map(&:chomp)
@input = _[0..rindex]
end
end
|
118
119
120
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 118
def input?
@input
end
|
#reset ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 68
def reset
super()
infer_the_namespace
@internal_hash[:work_on_these_files] = []
@dataset = nil
end
|
#run ⇒ Object
216
217
218
219
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 216
def run
determine_on_which_files_to_work
batch_modify_the_files
end
|
109
110
111
112
113
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 109
def sanitize_input
if @input.start_with? 'sed -i'
@input.sub!(/^sed -i /,'')
end
end
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 84
def set_input(
i = DEFAULT_SED_COMMAND
)
i = i.first if i.is_a? Array
i = DEFAULT_SED_COMMAND if i.nil?
i = i.to_s.dup
case i when 'sed2','s2','2'
i = SED_COMMAND2
when 'sed3','s3','3'
i = SED_COMMAND3
end
@input = i
if REPORT_INPUT_COMMAND
opne "#{rev}The sed command used will be:"
e
e " #{sfancy(i)}"
e
end
sanitize_input
end
|
#set_work_on_these_files(i) ⇒ Object
#
set_work_on_these_files
It is better to store the absolute path towards the file at hand.
#
140
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 140
def set_work_on_these_files(i)
unless i.is_a? Array
i = [i]
end
if i.is_a? Array
i.map! {|entry|
File.absolute_path(entry)
}
end
@internal_hash[:work_on_these_files] = i
end
|
#try_to_read_in_this_file(i = target_file?)
) ⇒ Object
#
try_to_read_in_this_file
#
164
165
166
167
168
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 164
def try_to_read_in_this_file(i = target_file?)
if File.exist? i
@dataset = File.readlines(i)
end
end
|
#work_on_these_files? ⇒ Boolean
Also known as:
target_file?, work_on_these_files, these_files?
155
156
157
|
# File 'lib/rbt/actions/individual_actions/sed_wrapper/sed_wrapper.rb', line 155
def work_on_these_files?
@internal_hash[:work_on_these_files]
end
|