prepare unifying roleaccount facter
[mirror/dsa-puppet.git] / modules / debian_org / lib / facter / roleaccounts.rb
index b3a1a80..f00623f 100644 (file)
@@ -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