Sha256: 1b220e5a209e24f9f91305d4806c0f9c6798571e4dad0afbf3211b2ef8ae439a

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

module Envkey::Platform
  # Normalize the platform OS
  OS = case os = RbConfig::CONFIG['host_os'].downcase
  when /linux/
    "linux"
  when /darwin/
    "darwin"
  when /bsd/
    "freebsd"
  when /mingw|mswin/
    "windows"
  else
    "linux"
  end

  # Normalize the platform CPU
  ARCH = case cpu = RbConfig::CONFIG['host_cpu'].downcase
  when /amd64|x86_64/
    "x86_64"
  when /i?86|x86|i86pc/
    "x86"
  when /ppc|powerpc/
    "powerpc"
  when /^arm/
    "arm"
  else
    cpu
  end

  def self.platform_part
    case OS
      when "darwin", "linux", "windows", "freebsd"
        OS
      else
        "linux"
      end
  end

  def self.arch_part
    if platform_part == "darwin" && ARCH == "arm"
      "arm64"
    elsif ARCH == "x86_64"
      "amd64"
    else
      raise "As of 1.3.0, envkey-ruby only supports 64-bit systems. Please use an earlier version for 32-bit support."
    end
  end

  def self.ext
    platform_part == "windows" ? ".exe" : ""
  end

  def self.fetch_env_path
    File.expand_path("../../ext/#{lib_file_dir}/envkey-fetch#{ext}", File.dirname(__FILE__))
  end

  def self.lib_file_dir
    ["envkey-fetch", Envkey::ENVKEY_FETCH_VERSION.to_s, platform_part, arch_part].join("_")
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
envkey-1.3.0 lib/envkey/platform.rb