Sha256: edbe76c395ddb075a72db9748009fb56e083090983fd17b466c5b136388a57db

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

## macosx.rb
## Support methods for Apple OSX facts
##
## Copyright (C) 2007 Jeff McCune
## Author: Jeff McCune <jeff.mccune@northstarlabs.net>
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
## as published by the Free Software Foundation (version 2 of the License)
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston MA  02110-1301 USA
##

module Facter::Macosx
  require 'thread'
  require 'facter/util/plist'

  # JJM I'd really like to dynamically generate these methods
  # by looking at the _name key of the _items dict for each _dataType

  def self.hardware_overview
    # JJM Perhaps we should cache the XML data in a "class" level object.
    top_level_plist = Plist::parse_xml %x{/usr/sbin/system_profiler -xml SPHardwareDataType}
    system_hardware = top_level_plist[0]['_items'][0]
    system_hardware.delete '_name'
    system_hardware
  end

  # SPSoftwareDataType
  def self.os_overview
    top_level_plist = Plist::parse_xml %x{/usr/sbin/system_profiler -xml SPSoftwareDataType}
    os_stuff = top_level_plist[0]['_items'][0]
    os_stuff.delete '_name'
    os_stuff
  end

  def self.sw_vers
    ver = Hash.new
    [ "productName", "productVersion", "buildVersion" ].each do |option|
      ver["macosx_#{option}"] = %x{sw_vers -#{option}}.strip
    end
    ver
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facter-1.5.2 lib/facter/util/macosx.rb
facter-1.5 lib/facter/util/macosx.rb