Sha256: 2fe95aadd38fc79bccc08d2fb1aba82fed2720e0f20bfc374bbb86c499415408

Contents?: true

Size: 1.08 KB

Versions: 99

Compression:

Stored size: 1.08 KB

Contents

# Fact: architecture
#
# Purpose:
#   Return the CPU hardware architecture.
#
# Resolution:
#   On non-AIX IBM, OpenBSD, Linux, and Debian's kfreebsd, use the hardwaremodel fact.
#   On AIX get the arch value from `lsattr -El proc0 -a type`.
#   Gentoo and Debian call "x86_86" "amd64".
#   Gentoo also calls "i386" "x86".
#
# Caveats:
#

require 'facter/util/architecture'

Facter.add(:architecture) do
  setcode do
    model = Facter.value(:hardwaremodel)
    case model
      # most linuxen use "x86_64"
    when /IBM*/
      case Facter.value(:operatingsystem)
      when "AIX"
         arch = Facter::Util::Architecture.lsattr
         if (match = arch.match /type\s(\S+)\s/)
           match[1]
         end
      else
        model
      end
    when "x86_64"
      case Facter.value(:operatingsystem)
      when "Debian", "Gentoo", "GNU/kFreeBSD", "Ubuntu"
        "amd64"
      else
        model
      end
    when /(i[3456]86|pentium)/
      case Facter.value(:operatingsystem)
      when "Gentoo", "windows"
        "x86"
      else
        "i386"
      end
    else
      model
    end
  end
end

Version data entries

99 entries across 99 versions & 2 rubygems

Version Path
facter-2.5.7 lib/facter/architecture.rb
facter-2.5.7-x86-mingw32 lib/facter/architecture.rb
facter-2.5.7-x64-mingw32 lib/facter/architecture.rb
facter-2.5.7-universal-darwin lib/facter/architecture.rb
facter-2.5.6-x86-mingw32 lib/facter/architecture.rb
facter-2.5.6-x64-mingw32 lib/facter/architecture.rb
facter-2.5.6-universal-darwin lib/facter/architecture.rb
facter-2.5.6 lib/facter/architecture.rb
facter-2.5.5-x86-mingw32 lib/facter/architecture.rb
facter-2.5.5-x64-mingw32 lib/facter/architecture.rb
facter-2.5.5-universal-darwin lib/facter/architecture.rb
facter-2.5.5 lib/facter/architecture.rb
facter-2.5.4-x86-mingw32 lib/facter/architecture.rb
facter-2.5.4-x64-mingw32 lib/facter/architecture.rb
facter-2.5.4-universal-darwin lib/facter/architecture.rb
facter-2.5.4 lib/facter/architecture.rb
bolt-0.24.0 vendored/facter/lib/facter/architecture.rb
bolt-0.23.0 vendored/facter/lib/facter/architecture.rb
bolt-0.22.0 vendored/facter/lib/facter/architecture.rb
bolt-0.21.8 vendored/facter/lib/facter/architecture.rb