# File lib/gem2rpm/distro.rb, line 19
    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

        # Try os-release first.
        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 failed (it is empty or has not enough information),
        # try some other release files.
        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']
            # Use Fedora's template for RHEL ATM.
            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