module Train::Extras::DetectUnix
Public Instance Methods
detect_solaris()
click to toggle source
# File lib/train/extras/os_detect_unix.rb, line 53 def detect_solaris # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity # read specific os name # DEPRECATED: os[:family] is going to be deprecated, use os.solaris? rel = get_config('/etc/release') if /^.*(SmartOS).*$/ =~ rel @platform[:name] = 'smartos' @platform[:family] = 'smartos' elsif !(m = /^\s*(OmniOS).*r(\d+).*$/.match(rel)).nil? @platform[:name] = 'omnios' @platform[:family] = 'omnios' @platform[:release] = m[2] elsif !(m = /^\s*(OpenIndiana).*oi_(\d+).*$/.match(rel)).nil? @platform[:name] = 'openindiana' @platform[:family] = 'openindiana' @platform[:release] = m[2] elsif /^\s*(OpenSolaris).*snv_(\d+).*$/ =~ rel @platform[:name] = 'opensolaris' @platform[:family] = 'opensolaris' @platform[:release] = m[2] elsif !(m = /Oracle Solaris (\d+)/.match(rel)).nil? # TODO: should be string! @platform[:release] = m[1] @platform[:name] = 'solaris' @platform[:family] = 'solaris' elsif /^\s*(Solaris)\s.*$/ =~ rel @platform[:name] = 'solaris' @platform[:family] = 'solaris' elsif /^\s*(NexentaCore)\s.*$/ =~ rel @platform[:name] = 'nexentacore' @platform[:family] = 'nexentacore' else # unknown solaris @platform[:name] = 'solaris_distro' @platform[:family] = 'solaris' end # read release version unless (version = /^5\.(?<release>\d+)$/.match(uname_r)).nil? @platform[:release] = version['release'] end # read architecture arch = @backend.run_command('uname -p') @platform[:arch] = arch.stdout.chomp if arch.exit_status == 0 end
detect_via_uname()
click to toggle source
# File lib/train/extras/os_detect_unix.rb, line 13 def detect_via_uname # rubocop:disable Metrics/AbcSize case uname_s.downcase when /aix/ @platform[:family] = 'aix' out = @backend.run_command('uname -rvp').stdout m = out.match(/(\d+)\s+(\d+)\s+(.*)/) unless m.nil? @platform[:release] = "#{m[2]}.#{m[1]}" @platform[:arch] = m[3].to_s end when /hp-ux/ @platform[:family] = 'hpux' @platform[:name] = uname_s.lines[0].chomp @platform[:release] = uname_r.lines[0].chomp when /freebsd/ @platform[:family] = 'freebsd' @platform[:name] = uname_s.lines[0].chomp @platform[:release] = uname_r.lines[0].chomp when /netbsd/ @platform[:family] = 'netbsd' @platform[:name] = uname_s.lines[0].chomp @platform[:release] = uname_r.lines[0].chomp when /openbsd/ @platform[:family] = 'openbsd' @platform[:name] = uname_s.lines[0].chomp @platform[:release] = uname_r.lines[0].chomp when /sunos/ detect_solaris else # in all other cases we didn't detect it return false end # when we get here the detection returned a result true end