class KPM::SystemProxy::OsInformation
def build_hash(data)
def build_hash(data) os = {} unless data.nil? data.split("\n").each do |info| infos = info.split(':') os[infos[0].to_s.strip] = { os_detail: infos[0].to_s.strip, value: infos[1].to_s.strip } end end os end
def fetch
def fetch os_information = nil if OS.windows? os_information = fetch_windows elsif OS.linux? os_information = fetch_linux elsif OS.mac? os_information = fetch_mac end os_information end
def fetch_linux
def fetch_linux os_data = `lsb_release -a 2>&1` if os_data.nil? || os_data.include?('lsb_release: not found') os_data = `cat /etc/issue 2>&1` os_data = 'Description:' + os_data.gsub('\n \l', '') end build_hash(os_data) end
def fetch_mac
def fetch_mac os_data = `sw_vers` build_hash(os_data) end
def fetch_windows
def fetch_windows os_data = `systeminfo | findstr /C:"OS"` build_hash(os_data) end
def initialize
def initialize @os_info = fetch @labels = [{ label: :os_detail }, { label: :value }] end