class RBT::InstalledPrograms
Constants
- 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.
#¶ ↑
- FILE_INSTALLED_APPLICATIONS
- LOG_INSTALLED_SOURCE_FILES_HTML
#¶ ↑
LOG_INSTALLED_SOURCE_FILES_HTML
¶ ↑#¶ ↑
- USE_OCTAL_NUMBERING
#¶ ↑
USE_OCTAL_NUMBERING
¶ ↑If this is true then we use octal numbering instead of decimal numbering.
#¶ ↑
- VIDEO_FAVICON
#¶ ↑
VIDEO_FAVICON
¶ ↑#¶ ↑
Public Class Methods
Public Instance Methods
#¶ ↑
array_programs_listing?¶ ↑
#¶ ↑
# File lib/rbt/utility_scripts/installed_programs.rb, line 195 def array_programs_listing? @array_programs_listing end
#¶ ↑
create_image
¶ ↑
#¶ ↑
# File lib/rbt/utility_scripts/installed_programs.rb, line 251 def create_image(which_type) case which_type # ======================================================================= # # === :audio # ======================================================================= # when :audio, :a WebObject.string_img( "#{HOME_DIRECTORY_FOR_USER_X}DATA/images/AUDIO/NOTEN4.png",'marr4px','','',0,'AudioImage' ) if cyberweb_is_available? # ======================================================================= # # === :video # ======================================================================= # when :video, :v WebObject.string_img( VIDEO_FAVICON,'marr4px','','',0,'VideoImage' ) if cyberweb_is_available? end end
#¶ ↑
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.
#¶ ↑
# File lib/rbt/utility_scripts/installed_programs.rb, line 307 def create_info_page( into = FILE_INSTALLED_APPLICATIONS ) # ======================================================================= # # CREATE THE NEW FILE # ======================================================================= # @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 # hack :P _ "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">' # ======================================================================= # # Wir nutzen RQuery.new(), also eine andere Datei, um die Information # bezüglich der Programme und ihrer Gruppen zu sharen. # ======================================================================= # n_programs_counter = 0 # sorted nur in die html datei rein @array_programs_listing.sort.each { |this_program| p = Pathname.new(this_program) program_name = p.basename.to_s.downcase # is downcased @cookbooks = RBT::Cookbooks::SanitizeCookbook.new( File.basename( rds( this_program.downcase ) ) ) n_programs_counter += 1 _ '<tr><td class="wid30">' # tmp_long_program_counter variable zählt zb 003) 004) und so weiter.. # USE_OCTAL_NUMBERING 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 # Folgendes is nur für anderen padl Setting. 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 # File sharing, GUImaker und mud clients zeugs is by default nit auf gobolinux drauf # video libraries wie libavc sind meines Wissens nach auch nit da _('<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) # HERE WE LIST ALL THE SPECIAL CASES LIKE ALSA # _('<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' # wie oben, nur sind die folgenden keine def Gobolinux installed Programme _('<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="../../PC/LINUX/DISTRIBUTIONEN/GOBOLINUX/GOBOLINUX.cgi" style="padding:1em">' _ '<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
#¶ ↑
gobolinux_014_default_packages_full
¶ ↑
#¶ ↑
# 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?¶ ↑
If beautify is true, then we use additional css rules to make the resulting page look nicer.
#¶ ↑
# 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?¶ ↑
We have x default packages, t total packages. t-x is the sum of all non-default packages.
#¶ ↑
# 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
#¶ ↑
report_to_user
¶ ↑
This will give our user a list of installed programs (if he is invoking the script from a console).
#¶ ↑
# 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¶ ↑
#¶ ↑
RBT::Base#reset
# File lib/rbt/utility_scripts/installed_programs.rb, line 91 def reset super() infer_the_namespace # ========================================================================= # # === @program_dir # ========================================================================= # @program_dir = ''.dup # ========================================================================= # # === @array_programs_listing # ========================================================================= # @array_programs_listing = [] # ========================================================================= # # === @how_many_non_default_applications_are_on_this_pc # ========================================================================= # @how_many_non_default_applications_are_on_this_pc = 0 # ========================================================================= # # Perhaps this should all be registered elsewhere, or be done via # the "tags" entry in the cookbooks - but for now, we will keep it # this way. # ======================================================================= # @audio_programs = %w( esound libogg xmms ogg lame audacity wavbreaker mp3blaster streamripper liboggz ffmpeg ) @video_programs = %w( audiofile aumix xine mplayer ogle ) #static data @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 # ======================================================================= # # All default GoboLinux-014 packages. # ======================================================================= # @array_listing_deprecated_programs = %w( alsa-driver ) # not sure about alsadriver end
#¶ ↑
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.
#¶ ↑
# 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
#¶ ↑
set_programs_dir
¶ ↑
#¶ ↑
# File lib/rbt/utility_scripts/installed_programs.rb, line 136 def set_programs_dir(folder = '') folder = '' if folder.nil? if folder.empty? # defaults to Gobolinux File Structure my_programs_dir @programs_dir = programs_directory? else @programs_dir = "/#{folder}" if folder == 'd' or folder == 'def' # overrule @programs_dir = programs_directory? end end end