aboutsummaryrefslogtreecommitdiff
path: root/lib/facter/letsencrypt_bycertname.rb
diff options
context:
space:
mode:
Diffstat (limited to '')
-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