Class: Roebe::InstallLibreoffice
- Inherits:
-
Base
show all
- Includes:
- FileUtils::Verbose
- Defined in:
- lib/roebe/classes/install_libreoffice/constants.rb,
lib/roebe/classes/install_libreoffice/install_libreoffice.rb
Overview
Roebe::InstallLibreoffice
Constant Summary
collapse
- LIBREOFFICE_BASE_DIRECTORY =
"#{HOME_DIRECTORY_OF_USER_X}src/libreoffice/"
- LOCATION_OF_LIBREOFFICE =
#
LOCATION_OF_LIBREOFFICE
Denote the path to Libreoffice here. This is presently hardcoded.
#
LIBREOFFICE_BASE_DIRECTORY+
'LibreOffice_6.3.4.2_Linux_x86-64'\
'.tar.xz'
'/tmp/'
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
#initialize(i = nil, run_already = true) ⇒ InstallLibreoffice
45
46
47
48
49
50
51
52
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 45
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Instance Method Details
#determine_the_libreoffice_version ⇒ Object
#
determine_the_libreoffice_version
In order for this method to work, the instance variable @location_of_libreoffice must have been determined before.
That string contains the version, e. g. in a String such as “/home/x/src/libreoffice/libreoffice-7.4.2.3.tar.xz”.
#
77
78
79
80
81
82
83
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 77
def determine_the_libreoffice_version
use_this_regex = /(\d{1,2}\.\d{1,2}\.\d{1,2}\.\d{1,2})/i scanned = @location_of_libreoffice.scan(
use_this_regex
)
@libreoffice_version = scanned.flatten.first.to_s
end
|
#determine_the_location_of_libreoffice ⇒ Object
#
determine_the_location_of_libreoffice
#
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 88
def determine_the_location_of_libreoffice
_ = LOCATION_OF_LIBREOFFICE+'*'
if File.exist? LOCATION_OF_LIBREOFFICE
_ = LOCATION_OF_LIBREOFFICE
else
_ = Dir[_]
if _.empty?
opne 'The array is empty. This means that we could not'
opne "find any package at the location #{sdir(_)}"
attempt_to_rescue = Dir["#{LIBREOFFICE_BASE_DIRECTORY}*"].first
if attempt_to_rescue
opne "We will attempt to rescue with "\
"#{sfile(attempt_to_rescue.to_s)}"
_ = attempt_to_rescue
end
end
end
_ = _.first if _.is_a? Array @location_of_libreoffice = _
end
|
167
168
169
170
171
172
173
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 167
def (
= EXTRACT_WHERE_TO
)
Extracter.(
@location_of_libreoffice,
)
end
|
#greet_the_user ⇒ Object
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 122
def greet_the_user
opne "Hello and #{steelblue('welcome')}!"
e
e 'Libreoffice will be installed next.'
e
e 'The source tarball can be found at:'
e
e " #{sfile(@location_of_libreoffice)}"
e
e "This file will be extracted into #{sdir(EXTRACT_WHERE_TO)} next."
end
|
#install_this_deb_file(i) ⇒ Object
#
install_this_deb_file
This method will install a debian .deb file.
#
#rcp(i = return_pwd) ⇒ Object
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 146
def rcp(
i = return_pwd
)
require 'rbt'
i = File.basename(i)
if i.include? '_Linux_'
i = i.dup if i.frozen?
i.sub!(/_Linux/,'')
if i.include? '_x86-64'
i.sub!(/_x86-64/,'')
end
end
RBT.rcp(i.downcase)
end
|
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 57
def reset
super()
infer_the_namespace
determine_the_location_of_libreoffice
@libreoffice_version = '6.3'
determine_the_libreoffice_version
end
|
#return_libreoffice_version ⇒ Object
#
return_libreoffice_version
This method will return the libreoffice version in use.
#
180
181
182
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 180
def return_libreoffice_version
@libreoffice_version
end
|
187
188
189
190
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 187
def rnsymc
require 'rbt/requires/require_symlink_this_program.rb'
RBT::SymlinkFromToCurrent.new(return_pwd)
end
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 195
def run
greet_the_user
where_to = rds(RemoveFileSuffix[
EXTRACT_WHERE_TO+File.basename(@location_of_libreoffice)
]+'/')
opne "We will now change directory to #{sdir(where_to)}"
cd where_to
rcp
debs_dir = "#{where_to}/DEBS/"
if File.directory? debs_dir file_listing = Dir[debs_dir+'*']
file_listing.reject! {|file| file !~ /.deb$/}
file_listing.each { |deb_file|
opne 'Next passing '+sfile(deb_file)+' to class '+
sfancy('Roebe::InstallDebianFile')+'.'
install_this_deb_file(deb_file) }
end
proper_target = "#{ENV['MY_PROGRAMS']}/Libreoffice/Current/"
if File.directory?(where_to+'/opt/') and
File.directory?(where_to+'/usr/')
from = rds("#{where_to}/opt/")
opne 'Copying from '+sdir(from)+' towards '+sdir(proper_target+File.basename(from))
cpr(from, proper_target+File.basename(from))
from = rds("#{where_to}/usr/")
opne 'Copying from '+sdir(from)+' towards '+sdir(proper_target+File.basename(from))
cpr(from, proper_target+File.basename(from))
cd proper_target
opne "Now copying opt/ and usr/ into #{sdir(proper_target)}."
cpr('opt/', proper_target)
cpr('usr/', proper_target)
Dir['usr/*'].each {|entry|
if File.directory? 'usr/'+entry
cpr('usr/'+entry, proper_target)
end
}
cd proper_target
rnsymc
soffice_target = '/usr/bin/soffice'
opne 'Next creating a soffice2 symlink at /usr/bin/'
if File.symlink?(soffice_target)
File.delete(soffice_target)
end
symlink(
proper_target+'opt/libreoffice'+
return_libreoffice_version[0, 3]+
'/program/soffice',
soffice_target
)
opne 'Done!'
if is_on_roebe?
Open.open("/home/x/studium/EXAMS_RESULT/AAA_EXAM_RESULTS.odt")
end
else
opne "No targets found at #{where_to}/opt/ - does anything exist there?"
end
end
|
113
114
115
116
117
|
# File 'lib/roebe/classes/install_libreoffice/install_libreoffice.rb', line 113
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup if i
@input = i
end
|