2011-10-03 20:51:05 +02:00
|
|
|
# A facter fact to determine the root home directory.
|
|
|
|
# This varies on PE supported platforms and may be
|
|
|
|
# reconfigured by the end user.
|
|
|
|
|
|
|
|
module Facter::Util::RootHome
|
|
|
|
class << self
|
|
|
|
def get_root_home
|
|
|
|
root_ent = Facter::Util::Resolution.exec("getent passwd root")
|
|
|
|
# The home directory is the sixth element in the passwd entry
|
2012-02-28 20:01:15 +01:00
|
|
|
# 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]
|
2011-10-03 20:51:05 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
Facter.add(:root_home) do
|
|
|
|
setcode { Facter::Util::RootHome.get_root_home }
|
|
|
|
end
|
2014-01-17 07:22:38 +01:00
|
|
|
|
|
|
|
Facter.add(:root_home) do
|
|
|
|
confine :kernel => :darwin
|
|
|
|
setcode do
|
|
|
|
str = Facter::Util::Resolution.exec("dscacheutil -q user -a name root")
|
|
|
|
hash = {}
|
|
|
|
str.split("\n").each do |pair|
|
|
|
|
key,value = pair.split(/:/)
|
|
|
|
hash[key] = value
|
|
|
|
end
|
|
|
|
hash['dir'].strip
|
|
|
|
end
|
|
|
|
end
|
2015-08-27 15:53:02 +02:00
|
|
|
|
|
|
|
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 =~ /^#/
|
|
|
|
root_home = line.split(/:/)[1]
|
|
|
|
end
|
|
|
|
root_home
|
|
|
|
end
|
|
|
|
end
|