summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2017-01-16 13:34:48 +0100
committervarac <varacanero@zeromail.org>2017-01-16 13:34:48 +0100
commitf3c4059603a6ac19f132b0dc47b95e49d9ddc4ba (patch)
treed538ad5f49dc31a3bf10029a2c875b729048cdc0 /lib
parentdc76f6f69e306f865a4a7c3b78b6d5ba694719c5 (diff)
parenta0321364514f52a4c110a15afbdad5109d768fe6 (diff)
Merge remote-tracking branch 'camptocamp/master'HEADmaster
Diffstat (limited to 'lib')
-rw-r--r--lib/facter/systemd.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/facter/systemd.rb b/lib/facter/systemd.rb
new file mode 100644
index 0000000..4361f77
--- /dev/null
+++ b/lib/facter/systemd.rb
@@ -0,0 +1,35 @@
+# Fact: systemd
+#
+# Purpose:
+# Determine whether SystemD is the init system on the node
+#
+# Resolution:
+# Check the name of the process 1 (ps -p 1)
+#
+# Caveats:
+#
+
+# Fact: systemd-version
+#
+# Purpose:
+# Determine the version of systemd installed
+#
+# Resolution:
+# Check the output of systemctl --version
+#
+# Caveats:
+#
+
+Facter.add(:systemd) do
+ confine :kernel => :linux
+ setcode do
+ Facter::Util::Resolution.exec('ps -p 1 -o comm=') == 'systemd'
+ end
+end
+
+Facter.add(:systemd_version) do
+ confine :systemd => true
+ setcode do
+ Facter::Util::Resolution.exec("systemctl --version | awk '/systemd/{ print $2 }'")
+ end
+end