def self.vmstat_darwin_find_free_memory()
memfree = 0
pagesize = 0
memspecfree = 0
vmstats = Facter::Util::Resolution.exec('vm_stat')
vmstats.each_line do |vmline|
case
when vmline =~ /page\ssize\sof\s(\d+)\sbytes/
pagesize = $1.to_i
when vmline =~ /^Pages\sfree:\s+(\d+)\./
memfree = $1.to_i
when vmline =~ /^Pages\sspeculative:\s+(\d+)\./
memspecfree = $1.to_i
end
end
freemem = ( memfree + memspecfree ) * pagesize
Facter.add("MemoryFree") do
setcode do
Facter::Memory.scale_number(freemem.to_f, "")
end
end
end