Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / facter / root_home.rb
index b4f87ff..7544dd0 100644 (file)
@@ -1,32 +1,47 @@
-# A facter fact to determine the root home directory.
-# This varies on PE supported platforms and may be
-# reconfigured by the end user.
-
+# root_home.rb
 module Facter::Util::RootHome
+  # @summary
+  #   A facter fact to determine the root home directory.
+  #   This varies on PE supported platforms and may be
+  #   reconfigured by the end user.
   class << self
-  def get_root_home
-    root_ent = Facter::Util::Resolution.exec("getent passwd root")
+  # determines the root home directory
+  def returnt_root_home
+    root_ent = Facter::Util::Resolution.exec('getent passwd root')
     # The home directory is the sixth element in the passwd entry
     # If the platform doesn't have getent, root_ent will be nil and we should
     # return it straight away.
-    root_ent && root_ent.split(":")[5]
+    root_ent && root_ent.split(':')[5]
   end
   end
 end
 
 Facter.add(:root_home) do
-  setcode { Facter::Util::RootHome.get_root_home }
+  setcode { Facter::Util::RootHome.returnt_root_home }
 end
 
 Facter.add(:root_home) do
   confine :kernel => :darwin
   setcode do
-    str = Facter::Util::Resolution.exec("dscacheutil -q user -a name root")
+    str = Facter::Util::Resolution.exec('dscacheutil -q user -a name root')
     hash = {}
     str.split("\n").each do |pair|
-      key,value = pair.split(/:/)
+      key, value = pair.split(%r{:})
       hash[key] = value
     end
     hash['dir'].strip
   end
 end
+
+Facter.add(:root_home) do
+  confine :kernel => :aix
+  root_home = nil
+  setcode do
+    str = Facter::Util::Resolution.exec('lsuser -c -a home root')
+    str && str.split("\n").each do |line|
+      next if line =~ %r{^#}
+      root_home = line.split(%r{:})[1]
+    end
+    root_home
+  end
+end