HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //proc/self/root/usr/lib/ruby/site_ruby/1.8/facter/partitions.rb
# Fact: partitions
#
# Purpose:
#   Return the details of the disk partitions.
#
#   This fact is structured. Values are returned as a group of key-value pairs.
#
# Resolution:
#   Parse the contents of `/sys/block/<device>/size` to receive the size (multiplying by 512 to correct for blocks-to-bytes).
#
# Caveats:
#   For Linux, only 2.6+ is supported at this time due to the reliance on sysfs.
#

# Author: Chris Portman <chris@portman.net.au>

require 'facter'
require 'facter/util/partitions'

Facter.add(:partitions) do
  confine do
    Facter::Util::Partitions.available? ? true : nil
  end

  setcode do
    partitions = {}
    Facter::Util::Partitions.list.each do |part|
      details = {}
      details['uuid']       = Facter::Util::Partitions.uuid(part)
      details['size']       = Facter::Util::Partitions.size(part)
      details['mount']      = Facter::Util::Partitions.mount(part)
      details['label']      = Facter::Util::Partitions.label(part)
      details['filesystem'] = Facter::Util::Partitions.filesystem(part)
      details.reject! {|k,v| v.nil? || v.to_s.empty? }
      partitions[part] = details
    end
    partitions
  end
end