Class: Cfruby::OS::Linux

Inherits:
OS
  • Object
show all
Defined in:
lib/libcfruby/osmodules/linux-generic.rb

Instance Method Summary collapse

Methods inherited from OS

#get_process_manager, #get_scheduler, #method_missing, #to_s

Constructor Details

#initializeLinux

Returns a new instance of Linux.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/libcfruby/osmodules/linux-generic.rb', line 10

def initialize()
  @keys = Hash.new()

  @keys['name'] = 'Linux'

  unameoutput = `uname -v`
  @keys['version'] = `cat /proc/version`.strip

  if File.exist? '/etc/HOSTNAME'
    @keys['hostname'] = `cat /etc/HOSTNAME`.strip
  elsif File.exist? '/etc/hostname'
    @keys['hostname'] = `cat /etc/hostname`.strip
  end
  # ---- figure distribution
  @keys['distribution'] = 'unknown'
  version = `cat /proc/version`.strip
  @keys['distribution'] = 'debianlinux' if version =~ /Debian/
  @keys['distribution'] = 'rocklinux' if version =~ /[Rr]ock/
  Cfruby.controller.inform('debug', "Distro #{self['distribution']}")
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Cfruby::OS::OS

Instance Method Details

#[](key) ⇒ Object

an alternative to calling lookup



70
71
72
# File 'lib/libcfruby/osmodules/linux-generic.rb', line 70

def [](key)
  return(lookup(key))
end

#get_package_managerObject

returns an object implementing the PackageManager interface as appropriate for the default package management system for a given OS



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/libcfruby/osmodules/linux-generic.rb', line 34

def get_package_manager()
  # look for portage
  if(File.executable?('/usr/bin/emerge') and File.directory?('/usr/portage'))
    return(Packages::PortagePackageManager.new())
  end

  # look for apt
  if(File.executable?('/usr/bin/apt-get'))
    return(Packages::AptPackageManager.new())
  end
  Cfruby.controller.inform('debug', "No package manager available")

  return(nil)
end

#get_user_managerObject

Returns a UserManager object specific to OS X



51
52
53
# File 'lib/libcfruby/osmodules/linux-generic.rb', line 51

def get_user_manager()
  return(Users::LinuxUserManager.new())
end

#lookup(key) ⇒ Object

returns the value of the given key for this OS. At a minimum an OS should provide the following:

name

returns the name of the OS

version

the version of the OS

osname

e.g. freebsd, linux, windows, etc - these should return true and be case insensitive to allow

lookups of the form lookup(‘Windows’) In addition to the above name and version should be implemented as getter methods for convenience



64
65
66
# File 'lib/libcfruby/osmodules/linux-generic.rb', line 64

def lookup(key)
  return(@keys[key])
end