summaryrefslogtreecommitdiffstats
path: root/lib/facter/Cfkey.rb
blob: e54aeb0089af659431e9c38a6b3e15945645d4e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Fact: Cfkey
#
# Purpose: Return the public key(s) for CFengine.
#
# Resolution:
#   Tries each file of standard localhost.pub & cfkey.pub locations,
#   checks if they appear to be a public key, and then join them all together.
#
# Caveats:
#

## Cfkey.rb
## Facts related to cfengine
##

Facter.add(:Cfkey) do
    setcode do
        value = nil
        ["/usr/local/etc/cfkey.pub",
            "/etc/cfkey.pub",
            "/var/cfng/keys/localhost.pub",
            "/var/cfengine/ppkeys/localhost.pub",
            "/var/lib/cfengine/ppkeys/localhost.pub",
            "/var/lib/cfengine2/ppkeys/localhost.pub"
        ].each do |file|
            if FileTest.file?(file)
                File.open(file) { |openfile|
                    value = openfile.readlines.reject { |line|
                        line =~ /PUBLIC KEY/
                    }.collect { |line|
                        line.chomp
                    }.join("")
                }
            end
            if value
                break
            end
        end

        value
    end
end