class Specinfra::Helper::DetectOs::Suse

Public Instance Methods

detect() click to toggle source
# File lib/specinfra/helper/detect_os/suse.rb, line 2
def detect
  if run_command('ls /etc/os-release').success? and run_command('zypper -V').success?
    line = run_command('cat /etc/os-release').stdout
    if line =~ /ID="?opensuse/
      family = 'opensuse'
    elsif line =~ /ID="sles"/
      family = 'sles'
    elsif line =~ /ID="sles_sap"/
      family = 'sles'
    end
    if line =~ /VERSION_ID=\"(\d+\.\d+|\d+)\"/
      release = $1
    end
    { :family => family, :release => release }
  elsif run_command('ls /etc/SuSE-release').success? and run_command('zypper -V').success?
    line = run_command('cat /etc/SuSE-release').stdout
    if line =~ /SUSE Linux Enterprise Server (\d+)/
      release = $1
      family = 'suse'
    elsif line =~ /openSUSE (\d+\.\d+|\d+)/
      release = $1
      family = 'opensuse'
    end
    { :family => family, :release => release }
  end
end