Sha256: db66d57c6e6b0911fd84320065f946908e570ad26c6c9de8babdf9d5800d2001

Contents?: true

Size: 1.31 KB

Versions: 38

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

module Facter
  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(consumerrel, kernel_version)
        else
          check_version_6(version, consumerrel) || check_version_5(version, consumerrel, description) || version
        end
      end

      private

      def check_version_10(consumerrel, kernel_version)
        build_number = kernel_version[/([^.]*)$/].to_i
        if consumerrel
          '10'
        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

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
facter-4.0.24 lib/facts_utils/windows_release_finder.rb
facter-4.0.23 lib/facts_utils/windows_release_finder.rb
facter-4.0.22 lib/facts_utils/windows_release_finder.rb
facter-4.0.21 lib/facts_utils/windows_release_finder.rb
facter-4.0.20 lib/facts_utils/windows_release_finder.rb
facter-4.0.19 lib/facts_utils/windows_release_finder.rb
facter-4.0.18 lib/facts_utils/windows_release_finder.rb
facter-4.0.17 lib/facts_utils/windows_release_finder.rb
facter-4.0.16 lib/facts_utils/windows_release_finder.rb
facter-4.0.15 lib/facts_utils/windows_release_finder.rb
facter-4.0.14 lib/facts_utils/windows_release_finder.rb
facter-4.0.13 lib/facts_utils/windows_release_finder.rb
facter-4.0.12 lib/facts_utils/windows_release_finder.rb
facter-4.0.11 lib/facts_utils/windows_release_finder.rb
facter-4.0.10.pre lib/facts_utils/windows_release_finder.rb
facter-4.0.9.pre lib/facts_utils/windows_release_finder.rb
facter-4.0.8.pre lib/facts_utils/windows_release_finder.rb
facter-4.0.7.pre lib/facts_utils/windows_release_finder.rb