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

new( folder = '', run_already = true ) click to toggle source
#

initialize

#
# 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

Public Instance Methods

_(i) click to toggle source
#

_

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 244
def _(i)
  @string << "#{i}"
end
array_programs_listing?() click to toggle source
#

array_programs_listing?

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 195
def array_programs_listing?
  @array_programs_listing
end
Also aliased as: programs_listing?
create_image(which_type) click to toggle source
#

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( into = FILE_INSTALLED_APPLICATIONS ) click to toggle source
#

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
cyberweb_is_available?() click to toggle source
#

cyberweb_is_available?

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 202
def cyberweb_is_available?
  Object.const_defined? :WebObject
end
gobolinux_014_default_packages_full()
gobolinux_014_default_packages_full=(i) click to toggle source
#

gobolinux_014_default_packages_full=

We should probably keep this up-to-date with the most recenty GoboLinux version.

#
# 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?() click to toggle source
#

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?(shall_we_beautify = false) click to toggle source
#

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?() click to toggle source
#

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
phow_many_installed_programs?() click to toggle source
#

phow_many_installed_programs?

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 230
def phow_many_installed_programs?
  e how_many_installed_programs?
end
programs_listing?()
report_to_user() click to toggle source
#

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() click to toggle source
#

reset

#
Calls superclass method 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
run() click to toggle source
#

run

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 458
def run
  scan_and_report
  how_many_non_default_packages_do_we_have?
  phow_many_installed_programs?
end
scan() click to toggle source
#

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
scan_and_report() click to toggle source
#

scan_and_report

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 290
def scan_and_report
  scan
  report_to_user
end
set_programs_dir(folder = '') click to toggle source
#

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
where?() click to toggle source
#

where?

#
# File lib/rbt/utility_scripts/installed_programs.rb, line 237
def where?
  LOG_INSTALLED_SOURCE_FILES_HTML
end