in itchef/cookbooks/cpe_helpers/libraries/cpe_helpers.rb [170:197]
def self.console_user_home_dir
if macos?
return nil if loginwindow?
standard_home = ::File.join("/Users/#{console_user}")
return standard_home if ::Dir.exist?(standard_home)
plist_results = shell_out(
"/usr/bin/dscl -plist . read /Users/#{console_user} " +
'NFSHomeDirectory',
).stdout
plist_data = Plist.parse_xml(plist_results)
homes = plist_data.to_h.fetch('dsAttrTypeStandard:NFSHomeDirectory', [])
return homes[0]
end
if linux?
standard_home = ::File.join("/home/#{console_user}")
return standard_home if ::Dir.exist?(standard_home)
end
if windows?
standard_home = ::File.join(ENV['SYSTEMDRIVE'], 'Users', console_user)
return standard_home if ::Dir.exist?(standard_home)
end
rescue StandardError => e
Chef::Log.warn('Unable to lookup console_user_home_dir ' +
"#{e.message} \n" +
"#{e.backtrace.to_a.join("\n")}\n")
nil
end