From: Peter Palfrader Date: Sat, 7 Sep 2019 15:21:39 +0000 (+0200) Subject: prepare unifying roleaccount facter X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=f730778ea3422c96c978e2bef1b3fda703094707;p=mirror%2Fdsa-puppet.git prepare unifying roleaccount facter --- diff --git a/modules/debian_org/lib/facter/roleaccounts.rb b/modules/debian_org/lib/facter/roleaccounts.rb index b3a1a803c..f00623fda 100644 --- a/modules/debian_org/lib/facter/roleaccounts.rb +++ b/modules/debian_org/lib/facter/roleaccounts.rb @@ -1,14 +1,35 @@ begin require 'etc' - Facter.add("git_key") do - setcode do - key = nil - keyfile = '/home/git/.ssh/id_rsa.pub' - if FileTest.exist?(keyfile) - key = File.open(keyfile).read.chomp + %w{git}.each do |user| + Facter.add("#{user}_user_exists") do + setcode do + result = false + begin + if Etc.getpwnam(user) + result = true + end + rescue ArgumentError + end + result + end + end + + Facter.add("#{user}_key") do + setcode do + key = nil + begin + pwinfo = Etc.getpwnam(user) + if pwinfo and pwinfo.dir + keyfile = pwinfo.dir + '/.ssh/id_rsa.pub' + if FileTest.exist?(keyfile) + key = File.open(keyfile).read.chomp + end + end + rescue ArgumentError + end + key end - key end end