X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Ffacter%2Froot_home.rb;h=7544dd09eaa1c970b72aa0ce1cf5706b6e76b128;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=b4f87ff2ab2c7a49a421d2e5281d8d9f86211f97;hpb=ad88f67c13ae0f1a08936dad643f1e3509ab5f40;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/lib/facter/root_home.rb b/3rdparty/modules/stdlib/lib/facter/root_home.rb index b4f87ff2a..7544dd09e 100644 --- a/3rdparty/modules/stdlib/lib/facter/root_home.rb +++ b/3rdparty/modules/stdlib/lib/facter/root_home.rb @@ -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