Sha256: 8bc5687ca48d6bd1192ca43b0c6d634afd3259da329b9bd72cffbf73749ce7ee

Contents?: true

Size: 1.08 KB

Versions: 28

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

28 entries across 28 versions & 1 rubygems

Version Path
facter-2.1.0 lib/facter/architecture.rb
facter-2.1.0-x86-mingw32 lib/facter/architecture.rb
facter-2.1.0-x64-mingw32 lib/facter/architecture.rb
facter-2.1.0-universal-darwin lib/facter/architecture.rb
facter-1.7.6 lib/facter/architecture.rb
facter-2.0.2 lib/facter/architecture.rb
facter-2.0.2-x86-mingw32 lib/facter/architecture.rb
facter-2.0.2-universal-darwin lib/facter/architecture.rb
facter-2.0.1 lib/facter/architecture.rb
facter-2.0.1-x86-mingw32 lib/facter/architecture.rb
facter-2.0.1-universal-darwin lib/facter/architecture.rb
facter-2.0.1.rc4 lib/facter/architecture.rb
facter-2.0.1.rc4-x86-mingw32 lib/facter/architecture.rb
facter-2.0.1.rc4-universal-darwin lib/facter/architecture.rb
facter-2.0.1.rc3 lib/facter/architecture.rb
facter-2.0.1.rc3-x86-mingw32 lib/facter/architecture.rb
facter-2.0.1.rc3-universal-darwin lib/facter/architecture.rb
facter-2.0.1.rc2 lib/facter/architecture.rb
facter-2.0.1.rc2-x86-mingw32 lib/facter/architecture.rb
facter-2.0.1.rc2-universal-darwin lib/facter/architecture.rb