zammad/app/models/system_report/plugin/os.rb
2026-01-02 15:41:09 +02:00

31 lines
702 B
Ruby

# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
class SystemReport::Plugin::Os < SystemReport::Plugin
OS_RELEASE_FILE = '/etc/os-release'.freeze
DESCRIPTION = __('Operating system').freeze
def fetch
os_release.merge(platform: RUBY_PLATFORM).deep_symbolize_keys
end
private
def os_release
return {} if !File.exist?(OS_RELEASE_FILE)
os_release = File.read(OS_RELEASE_FILE)
begin
os_release.split("\n").to_h do |line|
key, value = line.split('=')
key.downcase!
value.delete!('"')
[key, value]
end
rescue
Rails.logger.error("Failed to parse #{OS_RELEASE_FILE}")
{}
end
end
end