Class: RBT::InstalledPrograms
- Inherits:
-
Base
show all
- Defined in:
- lib/rbt/utility_scripts/installed_programs.rb
Overview
Constant Summary
collapse
- DO_YOU_WANT_TO_DISPLAY_DEF_PROGRAMS =
#
DO_YOU_WANT_TO_DISPLAY_DEF_PROGRAMS
If true we display the red def packages. May be interesting due to lateron installed packages.
#
true
- VIDEO_FAVICON =
"#{HOME_DIRECTORY_FOR_USER_X}data/images/video/VIDEO_FAVICON.png"
- LOG_INSTALLED_SOURCE_FILES_HTML =
#
LOG_INSTALLED_SOURCE_FILES_HTML
#
"#{RBT.temp_directory?}InstalledPrograms.html"
- FILE_INSTALLED_APPLICATIONS =
LOG_INSTALLED_SOURCE_FILES_HTML
- USE_OCTAL_NUMBERING =
#
USE_OCTAL_NUMBERING
If this is true then we use octal numbering instead of decimal numbering.
#
true
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(folder = '', run_already = true) ⇒ InstalledPrograms
79
80
81
82
83
84
85
86
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 79
def initialize(
folder = '',
run_already = true
)
reset
set_programs_dir(folder)
run if run_already
end
|
Instance Method Details
#_(i) ⇒ Object
244
245
246
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 244
def _(i)
@string << "#{i}"
end
|
#array_programs_listing? ⇒ Boolean
Also known as:
programs_listing?
#
array_programs_listing?
#
195
196
197
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 195
def array_programs_listing?
@array_programs_listing
end
|
#create_image(which_type) ⇒ Object
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 251
def create_image(which_type)
case which_type
when :audio, :a
WebObject.string_img(
"#{HOME_DIRECTORY_FOR_USER_X}DATA/images/AUDIO/NOTEN4.png",'marr4px','','',0,'AudioImage'
) if cyberweb_is_available?
when :video, :v
WebObject.string_img(
VIDEO_FAVICON,'marr4px','','',0,'VideoImage'
) if cyberweb_is_available?
end
end
|
#create_info_page(into = FILE_INSTALLED_APPLICATIONS) ⇒ Object
#
create_info_page
Creates the info page.
A typical location may be:
/System/Information/InstalledApplications.html
It accepts one argument, which is the absolute path prepended to /Information/InstalledApplications.
#
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 307
def create_info_page(
into = FILE_INSTALLED_APPLICATIONS
)
@string = ''.dup
_ '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>
Installed Programs
</title>
<meta name="robots" content="noindex,nofollow,noarchive,noimageindex">
<meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link rel="stylesheet" type="text/css" href="/home/x/DATA/CSS/STD.css"/ >
<link rel="stylesheet" type="text/css" href="/home/x/DATA/CSS/LINKS.css" />
<link rel="stylesheet" type="text/css" href="/home/x/DATA/CSS/FONTCOL.css" />
<style type="text/css">
.pad5 {padding:5px}
.s1em {padding-left:1em;padding-right:1em}
.padl1em {padding-left:1em}
.padl3em {padding-left:3em}
.pad0_3em {padding:0.3em}
.wid30 {width:30%}
.FS11px {font-style:11px}
.FS12px {font-style:12px}
.FS13px {font-style:13px}
.crimson {color:crimson}
.slateblue {color:slateblue}
a:link {font-weight:600;color:slateblue;padding:1px;}
a:visited {font-weight:600;color:slateblue;
padding:1px;
}
a:hover {font-weight:600;text-decoration:underline;
font-weight:bolder;color:slateblue;
padding:1px;
}
a:active {font-weight:600;color:slateblue;padding:1px;}
</style>'
_ '<body class="pad8px" style="font-size:1.2em">'
_ "<p class=\"FS13px\">Your platform seems to be <b class=\"crimson\">
#{RUBY_PLATFORM}</b><br>"
tmp_var = `uname -a`
tmp_var.gsub!(/ - /,' ')
_ "Your uptime was #{tmp_var}<br>"
begin _ "Your <b>kernel</b> is <b></b>: "+tmp_var
rescue; end
_('<b class="crimson">(def)</b> means default Gobolinux 014 Installation. If '+
'its missing, then you have probably installed this application some day later on.<br>')
_ how_many_installed_programs?(true)
if cyberweb_is_available?
_ WebObject.string_img(
'PC/OS/LINUX/GLINUX/GOBOLINUX_LOGO4.png','FLR','','',0,'','../../')
_ '</p><h2><i class="FL120">'+
WebObject.string_img('STD/DOT2.png','marr4px','','',0,'','../../')
end
_ 'Listing of your programs</i></h2>'
_ '<p class="pad0_3em" style="border-top:3px solid slateblue">'
_ '<table class="s1em FS12px" cellpadding="1" cellspacing="1">'
n_programs_counter = 0
@array_programs_listing.sort.each { |this_program|
p = Pathname.new(this_program)
program_name = p.basename.to_s.downcase @cookbooks = action(
:SanitizeCookbook,
File.basename(rds(this_program.downcase))
)
n_programs_counter += 1
_ '<tr><td class="wid30">'
tmp_long_program_counter = '%03d' % n_programs_counter
tmp_long_program_counter = tmp_long_program_counter.to_i
if USE_OCTAL_NUMBERING
tmp_long_program_counter = tmp_long_program_counter.to_s(8)
end
tmp_long_program_counter << ') '
_ tmp_long_program_counter
_ '<b>'+this_program+'</b>'
_ '</a></td><td class="wid60">'
if @video_programs.include? program_name
_ create_image(:video)+'<i class="padl0em">This is a video application.</i>'
end
if @audio_programs.include? program_name
_ create_image(:audio)+'<i class="padl0em">This is an audio application.</i>'
end
_ '<i class="padl0em">Ist ein Script Programm</i>' if @scripting_programs.include? program_name
_ '<i class="padl0em">Ist ein Grafik Programm/Bibliothek</i>' if @graphics_programs.include? program_name
if @editor_programs.include? program_name
if @default_editor_programs.include? program_name
_ "<i class=\"padl0em\">#{p.basename.to_s} ist ein Editor</i><br>"
else
_ "<i class=\"padl0em\">#{p.basename.to_s} ist ein Editor</i><br>"
end
end
_('<i class="padl2em">Ist eine Video Bibliothek - Video Library</i>') if @lib_video_programs.include?(program_name)
_('<i class="padl2em">Ist ein GUI Maker</i>') if @gui_maker.include?(program_name)
_('<i class="padl0em">Ist ein Filesharing Programm</i>') if @filesharing_programs.include?(program_name)
_('<i class="padl2em">Ist ein MUD Client</i>') if @mud_programs.include?(program_name)
_('<i class="padl1em">Eine ASCII Art Library, low level gfx</i>') if program_name == 'aalib'
_('<i class="padl1em">Teil von ALSA Linux Audio</i>') if program_name[0,4] == 'alsa'
_('<i class="padl1em">Teil von KDE</i>') if program_name[0,'kde'.size] == 'kde'
_('<i class="padl1em">Accessibility ToolKit für Bildschirmleser, Vergrösserer etc</i>') if program_name[0,3] == 'atk'
_('<i class="padl1em">Spell Checker aspell</i>') if program_name[0,6] == 'aspell'
_('<i class="padl1em">Automagically Configuring Source Code</i>') if program_name[0,8] == 'autoconf'
_('<i class="padl1em">SNES emulator, also für SNES Spiele aufm PC</i>') if program_name[0,5] == 'zsnes'
_('<i class="padl1em">Verbesserte DEVFS, also Datei System</i>') if program_name[0,'udev'.size] == 'udev'
_('<i class="padl1em">Zum Bewältigen von Mehrpfad-Schnittstellen</i>') if program_name[0,'multipath-tools'.size] == 'multipath-tools'
_('<i class="padl1em">Console Tool zum downloaden von entfernten Programmen</i>') if program_name[0,'wget'.size] == 'wget'
_('<i class="padl1em">General purpose data compression library</i>') if program_name[0,'zlib'.size] == 'zlib'
_('<i class="padl1em">Wichtig für XPM Bilder</i>') if program_name[0,'xaw3d'.size] == 'xaw3d'
_('<i class="padl2em">Der Alsaplayer</i>') if program_name[0,4] == 'alsaplayer'
_('<i class="padl2em">Blender ist ein 3D Programm, zum erstellen von 3D Objekten</i>') if program_name[0,'blender'.size] == 'blender'
if program_name.start_with? 'games'
_ '<i class="padl2px">(<b>Spielesammlung</b>)</i>'
if cyberweb_is_available?
_ WebObject.string_img('GAMES/GAMES2_BIG_IMG.png','FLR marr2em')
end
end
_ '</td></tr>'
}
_ '</table>'
_ '<a href="'+LOG_INSTALLED_SOURCE_FILES_HTML+'" style="padding:1em">'
_ 'Installierte Source Files</a>'
_ '<a href="http://localhost/PC/LINUX/DISTRIBUTIONEN/GOBOLINUX/GOBOLINUX.cgi" style="padding:1em">'
_ 'GOBOLINUX.cgi</a>'
_ '</p></html>'
what = @string
write_what_into(what, into)
end
|
#cyberweb_is_available? ⇒ Boolean
#
cyberweb_is_available?
#
202
203
204
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 202
def cyberweb_is_available?
Object.const_defined? :WebObject
end
|
#gobolinux_014_default_packages_full=(i) ⇒ Object
#
gobolinux_014_default_packages_full=
We should probably keep this up-to-date with the most recenty GoboLinux version.
#
283
284
285
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 283
def gobolinux_014_default_packages_full=(i)
@gobolinux_014_default_packages_full = i
end
|
#gobolinux_014_default_packages_full? ⇒ Boolean
Also known as:
gobolinux_014_default_packages_full
#
gobolinux_014_default_packages_full
#
273
274
275
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 273
def gobolinux_014_default_packages_full?
@gobolinux_014_default_packages_full
end
|
#how_many_installed_programs?(shall_we_beautify = false) ⇒ Boolean
#
how_many_installed_programs?
If beautify is true, then we use additional css rules to make the resulting page look nicer.
#
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 212
def how_many_installed_programs?(shall_we_beautify = false)
if shall_we_beautify
opne 'It seems that you have '+
"<b style=\"font-style:italic;color:seagreen\">#{@array_programs_listing.length}</b> "+
'installed Applications '+
"of which #{@how_many_non_default_applications_are_on_this_pc} "+
'seem to be non default.'
else
opne "It seems that you have #{sfancy(@array_programs_listing.length)} "+
"installed "+'Applications of which '+
"#{@how_many_non_default_applications_are_on_this_pc} "+
'seem to be non default.'
end
end
|
#how_many_non_default_packages_do_we_have? ⇒ Boolean
#
how_many_non_default_packages_do_we_have?
We have x default packages, t total packages. t-x is the sum of all non-default packages.
#
187
188
189
190
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 187
def how_many_non_default_packages_do_we_have?
@how_many_non_default_applications_are_on_this_pc += @array_programs_listing.size
return @how_many_non_default_applications_are_on_this_pc
end
|
#phow_many_installed_programs? ⇒ Boolean
#
phow_many_installed_programs?
#
230
231
232
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 230
def phow_many_installed_programs?
e how_many_installed_programs?
end
|
#report_to_user ⇒ Object
#
report_to_user
This will give our user a list of installed programs (if he is invoking the script from a console).
#
174
175
176
177
178
179
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 174
def report_to_user
@array_programs_listing.sort.each_with_index { |content, index|
_ = '%03d' % (index.to_i+1)
sfancy("#{_} → "+content)
}
end
|
#reset ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 91
def reset
super()
infer_the_namespace
@program_dir = ''.dup
@array_programs_listing = []
@how_many_non_default_applications_are_on_this_pc = 0
@audio_programs = %w( esound libogg xmms ogg lame audacity
wavbreaker mp3blaster streamripper
liboggz ffmpeg )
@video_programs = %w( audiofile aumix xine mplayer ogle ) @lib_video_programs = %w( libavc1394 libdv )
@graphics_programs = %w( gimp tiff libpng imagemagick )
@filesharing_programs = %w( amule emule torrent bittorrent ctorrent azureus )
@scripting_programs = %w( pyqt ruby python perl abstk lisp )
@editor_programs = %w( xemacs vim gvim bluefish quanta )
@gui_maker = %w( FOX wxWidget )
@default_editor_programs = %w( vim ed bluefish emacs geany gedit )
@browsers = %w( nautilus firefox internetexplorer ie lynx opera )
@mud_programs = %w( tintin zmud tinyfugue )
@shells = %w( tcl zsh bash ksh csh perlshell psh )
@n_video_programs = 0
@n_audio_programs = 0
@array_listing_deprecated_programs = %w( alsa-driver ) end
|
#run ⇒ Object
455
456
457
458
459
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 455
def run
scan_and_report
how_many_non_default_packages_do_we_have?
phow_many_installed_programs?
end
|
#scan ⇒ Object
#
scan
scan scheint das Verzeichnis zu durchsuchen. Wenn es sich um ein Verzeichnis handelt, dann fügen wir diesen Eintrag in unser Array hinzu, halt der array, der alle unsere Programme speichert.
#
156
157
158
159
160
161
162
163
164
165
166
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 156
def scan
_ = @programs_dir
if File.directory? _
Dir.foreach(_) { |x|
next if x[0,1].eql? '.'
@array_programs_listing << _+'/'+x if File.directory? _+'/'+x
}
else
e 'Directory '+sdir(_)+' does not exist.'
end
end
|
#scan_and_report ⇒ Object
290
291
292
293
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 290
def scan_and_report
scan
report_to_user
end
|
#set_programs_dir(folder = '') ⇒ Object
136
137
138
139
140
141
142
143
144
145
146
147
|
# File 'lib/rbt/utility_scripts/installed_programs.rb', line 136
def set_programs_dir(folder = '')
folder = '' if folder.nil?
if folder.empty?
@programs_dir = programs_directory?
else
@programs_dir = "/#{folder}"
if folder == 'd' or folder == 'def' @programs_dir = programs_directory?
end
end
end
|