From be9e484c0daaf4befb0dfbcf85bda08ce6c1effd Mon Sep 17 00:00:00 2001 From: Nigel Kersten Date: Thu, 23 Jul 2009 08:34:47 -0700 Subject: Update OS X minor version fact to cope with '10.x' values and provide test coverage switch %x{} call to Facter::Util::Resolution.exec for better testing --- lib/facter/util/macosx.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/facter/util/macosx.rb b/lib/facter/util/macosx.rb index f5f83f3..6754f18 100644 --- a/lib/facter/util/macosx.rb +++ b/lib/facter/util/macosx.rb @@ -56,12 +56,16 @@ module Facter::Util::Macosx def self.sw_vers ver = Hash.new [ "productName", "productVersion", "buildVersion" ].each do |option| - ver["macosx_#{option}"] = %x{sw_vers -#{option}}.strip + ver["macosx_#{option}"] = Facter::Util::Resolution.exec("/usr/bin/sw_vers -#{option}").strip end productversion = ver["macosx_productVersion"] if not productversion.nil? - ver["macosx_productversion_major"] = productversion.scan(/(\d+\.\d+)/)[0][0] - ver["macosx_productversion_minor"] = productversion.scan(/(\d+)\.(\d+)\.(\d+)/)[0].last + versions = productversion.scan(/(\d+)\.(\d+)\.*(\d*)/)[0] + ver["macosx_productversion_major"] = "#{versions[0]}.#{versions[1]}" + if versions[2].empty? # 10.x should be treated as 10.x.0 + versions[2] = "0" + end + ver["macosx_productversion_minor"] = versions[2] end ver end -- cgit