# frozen_string_literal: true

class MemInfo
  # Total memory in kb. On Mac OS uses "sysctl", elsewhere expects the system has /proc/meminfo.
  # Returns nil if it cannot be determined.
  def mem_total
    @mem_total ||=
      begin
        system = `uname`.strip
        if system == "Darwin"
          s = `sysctl -n hw.memsize`.strip
          s.to_i / 1.kilobyte
        else
          s = `grep MemTotal /proc/meminfo`
          /(\d+)/.match(s)[0].try(:to_i)
        end
      rescue StandardError
        nil
      end
  end

  def unknown?
    mem_total.nil?
  end
end