summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorClément Lassieur <clement@lassieur.org>2018-03-19 21:10:31 +0100
committerClément Lassieur <clement@lassieur.org>2018-04-03 16:21:31 +0200
commitf72662968e757ed79eefa1990b5b94d802571632 (patch)
tree31b84449bb40d38b95a9c3c9329a24484af09df1 /gnu/services
parent7ba22308975f31c33d7a9cbb5c09be1837a74d2a (diff)
downloadguix-f72662968e757ed79eefa1990b5b94d802571632.tar.gz
services: certbot: Don't try to renew certificates on activation.
Because it takes too much time and it requires networking.

Thanks to Mathieu Othacehe for suggesting this.

* gnu/services/certbot.scm (certbot-activation): Do not run the renewal
command, copy its path to a fixed location, display it, so that the user can
run the command when they want.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/certbot.scm22
1 files changed, 14 insertions, 8 deletions
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index a2a200f032..7548145c98 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu services web)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages tls)
+  #:use-module (guix i18n)
   #:use-module (guix records)
   #:use-module (guix gexp)
   #:use-module (srfi srfi-1)
@@ -113,14 +114,19 @@
           #$(certbot-command config))))
 
 (define (certbot-activation config)
-  (match config
-    (($ <certbot-configuration> package webroot certificates email
-                                rsa-key-size default-location)
-     (with-imported-modules '((guix build utils))
-       #~(begin
-           (use-modules (guix build utils))
-           (mkdir-p #$webroot)
-           (zero? (system* #$(certbot-command config))))))))
+  (let* ((certbot-directory "/var/lib/certbot")
+         (script (in-vicinity certbot-directory "renew-certificates"))
+         (message (format #f (G_ "~a may need to be run~%") script)))
+    (match config
+      (($ <certbot-configuration> package webroot certificates email
+                                  rsa-key-size default-location)
+       (with-imported-modules '((guix build utils))
+         #~(begin
+             (use-modules (guix build utils))
+             (mkdir-p #$webroot)
+             (mkdir-p #$certbot-directory)
+             (copy-file #$(certbot-command config) #$script)
+             (display #$message)))))))
 
 (define certbot-nginx-server-configurations
   (match-lambda