Sha256: 9c2ca6af4c8767275008569bfe81c86f7d3cb978c3f825e609347f06d1235379

Contents?: true

Size: 1.62 KB

Versions: 7

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module Facter
  module Util
    module Facts
      class WindowsReleaseFinder
        class << self
          def find_release(input)
            version = input[:version]
            return unless version

            consumerrel = input[:consumerrel]
            description = input[:description]
            kernel_version = input[:kernel_version]

            if version =~ /10.0/
              check_version_10_11(consumerrel, kernel_version)
            else
              check_version_6(version, consumerrel) || check_version_5(version, consumerrel, description) || version
            end
          end

          private

          def check_version_10_11(consumerrel, kernel_version)
            build_number = kernel_version[/([^.]*)$/].to_i

            return '11' if build_number >= 22_000
            return '10' if consumerrel

            if build_number >= 20_348
              '2022'
            elsif build_number >= 17_623
              '2019'
            else
              '2016'
            end
          end

          def check_version_6(version, consumerrel)
            hash = {}
            hash['6.3'] = consumerrel ? '8.1' : '2012 R2'
            hash['6.2'] = consumerrel ? '8' : '2012'
            hash['6.1'] = consumerrel ? '7' : '2008 R2'
            hash['6.0'] = consumerrel ? 'Vista' : '2008'
            hash[version]
          end

          def check_version_5(version, consumerrel, description)
            return unless version =~ /5.2/
            return 'XP' if consumerrel

            description == 'R2' ? '2003 R2' : '2003'
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
facter-4.3.1 lib/facter/util/facts/windows_release_finder.rb
facter-4.3.0 lib/facter/util/facts/windows_release_finder.rb
facter-4.2.14 lib/facter/util/facts/windows_release_finder.rb
facter-4.2.13 lib/facter/util/facts/windows_release_finder.rb
facter-4.2.12 lib/facter/util/facts/windows_release_finder.rb
facter-4.2.11 lib/facter/util/facts/windows_release_finder.rb
facter-4.2.10 lib/facter/util/facts/windows_release_finder.rb