aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-01-14 23:52:29 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2023-01-15 00:09:27 +0100
commit15e94f424341528b2e23fdcf6d4756775903327e (patch)
tree4b6e6b0939e2c628fef9686c48297f14d284f874 /lib
parentExec require files. (diff)
downloadhugonikanor-letsencrypt-15e94f424341528b2e23fdcf6d4756775903327e.tar.gz
hugonikanor-letsencrypt-15e94f424341528b2e23fdcf6d4756775903327e.tar.xz
Check for cert by filename prefix.
Diffstat (limited to 'lib')
-rw-r--r--lib/facter/letsencrypt_bycertname.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/facter/letsencrypt_bycertname.rb b/lib/facter/letsencrypt_bycertname.rb
new file mode 100644
index 0000000..56556ff
--- /dev/null
+++ b/lib/facter/letsencrypt_bycertname.rb
@@ -0,0 +1,23 @@
+require 'pathname'
+
+Facter.add(:letsencrypt_bycertname) do
+ confine kernel: ['FreeBSD', 'Linux', 'OpenBSD']
+
+ setcode do
+ certs = {}
+
+ # locate the certificate repository
+ livedir = ['/etc/letsencrypt/live', '/etc/certbot/live']
+ .map { |path| Pathname.new path }
+ .find(&:directory?)
+
+ unless livedir.nil?
+ Pathname.new(livedir).children.select(&:directory?).each do |path|
+ m = path.basename.to_s.match(%r{(.*?)(-\d+)?$})
+ certs[m[1]] = path.to_s
+ end
+ end
+
+ certs
+ end
+end