From 476a72ae92faec7a9bd974dec0869005cd7b8044 Mon Sep 17 00:00:00 2001 From: Roland Walker Date: Wed, 31 Dec 2014 08:34:49 -0500 Subject: [PATCH] incorporate hardware.rb from homebrew-fork * this is already a much-simplified version * recast to avoid using popen_read method * popen.rb is now unused and is removed * new file is cask/hardware/cpu.rb * toplevel ::Hardware namespace is temporarily aliased to Cask::Hardware --- lib/cask.rb | 2 ++ lib/cask/hardware.rb | 3 ++ lib/cask/hardware/cpu.rb | 41 +++++++++++++++++++++++ lib/vendor/homebrew-fork/hardware.rb | 50 ---------------------------- lib/vendor/homebrew-fork/popen.rb | 20 ----------- lib/vendor/homebrew-fork/utils.rb | 2 -- 6 files changed, 46 insertions(+), 72 deletions(-) create mode 100644 lib/cask/hardware.rb create mode 100644 lib/cask/hardware/cpu.rb delete mode 100644 lib/vendor/homebrew-fork/hardware.rb delete mode 100644 lib/vendor/homebrew-fork/popen.rb diff --git a/lib/cask.rb b/lib/cask.rb index d1b2ef64d4..1b064f2975 100644 --- a/lib/cask.rb +++ b/lib/cask.rb @@ -20,6 +20,7 @@ require 'cask/download_strategy' require 'cask/dsl' require 'cask/exceptions' require 'cask/fetcher' +require 'cask/hardware' require 'cask/installer' require 'cask/locations' require 'cask/macos' @@ -49,6 +50,7 @@ class Cask # todo: restrict visibility of this to the DSL ::MacOS = Cask::MacOS + ::Hardware = Cask::Hardware def self.init # todo: Creating directories should be deferred until needed. diff --git a/lib/cask/hardware.rb b/lib/cask/hardware.rb new file mode 100644 index 0000000000..760fa46594 --- /dev/null +++ b/lib/cask/hardware.rb @@ -0,0 +1,3 @@ +module Cask::Hardware; end + +require 'cask/hardware/cpu' diff --git a/lib/cask/hardware/cpu.rb b/lib/cask/hardware/cpu.rb new file mode 100644 index 0000000000..7d6eae6e3e --- /dev/null +++ b/lib/cask/hardware/cpu.rb @@ -0,0 +1,41 @@ +# originally from Homebrew + +module Cask::Hardware::CPU + extend self + + def is_32_bit? + !is_64_bit? + end + + def is_64_bit? + @capable ||= `/usr/sbin/sysctl -n hw.cpu64bit_capable 2>/dev/null`.to_i + @capable == 1 + end + + def intel? + type == :intel + end + + def ppc? + type == :ppc + end + + # sysctl is described in + def type + @type ||= `/usr/sbin/sysctl -n hw.cputype 2>/dev/null`.to_i + case @type + when 7 + :intel + when 18 + :ppc + end + end + + def cores + @cores ||= `/usr/sbin/sysctl -n hw.ncpu 2>/dev/null`.to_i + end + + def bits + @bits ||= is_64_bit? ? 64 : 32 + end +end diff --git a/lib/vendor/homebrew-fork/hardware.rb b/lib/vendor/homebrew-fork/hardware.rb deleted file mode 100644 index 9f83c8ad90..0000000000 --- a/lib/vendor/homebrew-fork/hardware.rb +++ /dev/null @@ -1,50 +0,0 @@ -module Hardware - module CPU - extend self - - def is_32_bit? - bits == 32 - end - - def is_64_bit? - bits == 64 - end - - def intel? - type == :intel - end - - def ppc? - type == :ppc - end - - # sysctl is described in - def type - @type ||= `/usr/sbin/sysctl -n hw.cputype 2>/dev/null`.to_i - case @type - when 7 - :intel - when 18 - :ppc - end - end - - def cores - @cores ||= `/usr/sbin/sysctl -n hw.ncpu 2>/dev/null`.to_i - end - - def bits - @bits ||= sysctl_bool("hw.cpu64bit_capable") ? 64 : 32 - end - - protected - - def sysctl_bool(property) - (@properties ||= {}).fetch(property) do - result = Utils.popen_read("/usr/sbin/sysctl", "-n", property, &:gets).to_i - # sysctl call succeded and printed 1 - @properties[property] = $?.success? && result == 1 - end - end - end -end diff --git a/lib/vendor/homebrew-fork/popen.rb b/lib/vendor/homebrew-fork/popen.rb deleted file mode 100644 index ad4b6f78b2..0000000000 --- a/lib/vendor/homebrew-fork/popen.rb +++ /dev/null @@ -1,20 +0,0 @@ -module Utils - def self.popen_read(*args, &block) - popen(args, "rb", &block) - end - - def self.popen(args, mode) - IO.popen("-", mode) do |pipe| - if pipe - if block_given? - yield pipe - else - return pipe.read - end - else - STDERR.reopen("/dev/null", "w") - exec(*args) - end - end - end -end diff --git a/lib/vendor/homebrew-fork/utils.rb b/lib/vendor/homebrew-fork/utils.rb index 1abce27e77..675a5d95b7 100644 --- a/lib/vendor/homebrew-fork/utils.rb +++ b/lib/vendor/homebrew-fork/utils.rb @@ -1,7 +1,5 @@ require 'pathname' require 'vendor/homebrew-fork/exceptions' -require 'vendor/homebrew-fork/hardware' -require 'vendor/homebrew-fork/popen' def homebrew_fork_system cmd, *args puts "#{cmd} #{args*' '}" if Cask.verbose