(FACT-852) Support for systemd and systemd_version
[puppet_systemd.git] / lib / facter / systemd.rb
1 # Fact: systemd
2 #
3 # Purpose: 
4 #   Determine whether SystemD is the init system on the node
5 #
6 # Resolution:
7 #   Check the name of the process 1 (ps -p 1)
8 #
9 # Caveats:
10 #
11
12 # Fact: systemd-version
13 #
14 # Purpose: 
15 #   Determine the version of systemd installed
16 #
17 # Resolution:
18 #  Check the output of systemctl --version
19 #
20 # Caveats:
21 #
22
23 Facter.add(:systemd) do
24   confine :kernel => :linux
25   setcode do
26     result = false
27     init_process_name = Facter::Core::Execution.exec('ps -p 1 -o comm=')
28     if init_process_name.eql? 'systemd'
29       result = true
30     end
31   end
32 end
33
34 Facter.add(:systemd_version) do
35   confine :systemd => true
36   setcode do
37     version = Facter::Core::Execution.exec("systemctl --version | grep 'systemd' | awk '{ print $2 }'")
38   end
39 end