diff options
author | Micah Anderson <micah@riseup.net> | 2010-10-17 19:11:16 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2010-10-17 19:11:16 -0400 |
commit | 5cb689737e367ce751956575b11b0d46bf241f91 (patch) | |
tree | c0f9bddd00f66262e8d38ebb31fd74986b95ba1f /lib/facter/mountpoints.rb | |
parent | 0ab822f209fd5b4e703f7608b375ba5780fa5364 (diff) | |
parent | 25e0862d29da6b99b1195942cc994780fbbf68ab (diff) |
Merge remote branch 'ng/master'
Diffstat (limited to 'lib/facter/mountpoints.rb')
-rw-r--r-- | lib/facter/mountpoints.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/facter/mountpoints.rb b/lib/facter/mountpoints.rb new file mode 100644 index 0000000..c51e6e6 --- /dev/null +++ b/lib/facter/mountpoints.rb @@ -0,0 +1,50 @@ +begin + + mountpoints = [] + # we show devices, but we avoid outputing duplicate devices + devices = [] + Facter.add("mountpoints") do + ignorefs = ["NFS", "nfs", "nfs4", "nfsd", "afs", "binfmt_misc", "proc", "smbfs", + "autofs", "iso9660", "ncpfs", "coda", "devpts", "ftpfs", "devfs", + "mfs", "shfs", "sysfs", "cifs", "lustre_lite", "tmpfs", "usbfs", "udf", + "fusectl", "fuse.snapshotfs", "rpc_pipefs"] + begin + require 'filesystem' + rescue Exception => e + confine :kernel => :linux + ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" + fs_source = nil + if FileTest.exists?("/etc/mtab") + fs_source = "/etc/mtab" + elsif FileTest.exists?("/proc/mounts") + fs_source = "/proc/mounts" + end + + mounts = File.read(fs_source).split("\n") + mounts.each do |mount| + mount = mount.split(" ") + if ((not ignorefs.include?(mount[2])) && (mount[3] !~ /bind/) && (not devices.include?(mount[0])) && (not mountpoints.include?(mount[1]))) + mountpoints.push(mount[1]) + end + devices.push(mount[0]) if not devices.include?(mount[0]) + end + else + FileSystem.mounts.each do |m| + if ((not ignorefs.include?(m.fstype)) && (m.options !~ /bind/) && !devices.include?(mount[0])) + mountpoints.push(m.mount) + end + devices.push(m.mount) if not devices.include?(m.mount) + end + end + setcode do + mountpoints.join(",") + end + end + Facter.add("devices") do + setcode do + devices.join(",") + end + end + +rescue Exception => e +end |