def self.os_release
@os_release ||= begin
os_release = OsRelease.new DEFAULT
grouped_release_files = release_files.group_by do |file|
File.basename(file)[/os-release|fedora|redhat|SuSE|pld/] || 'unrecognized'
end
if (os_release_files = grouped_release_files['os-release'])
content = File.open(os_release_files.first, Gem2Rpm::OPEN_MODE, &:read)
begin
os_release.os = content[/^ID=['"]?(.*?)['"]?$/, 1].to_sym
os_release.version = content[/^VERSION_ID=['"]?(.*?)['"]?$/, 1]
rescue
end
end
if os_release.os == DEFAULT
if (fedora_release_files = grouped_release_files['fedora'])
os_release.os = FEDORA
versions = []
fedora_release_files.each do |file|
/\d+/ =~ File.open(file, OPEN_MODE).readline
versions << Regexp.last_match.to_s if Regexp.last_match
end
versions.uniq!
os_release.version = versions.first if versions.length == 1
elsif grouped_release_files['redhat']
os_release.os = FEDORA
elsif grouped_release_files['SuSE']
os_release.os = OPENSUSE
elsif grouped_release_files['pld']
os_release.os = PLD
end
end
os_release
end
end