guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/09: services: nginx: Add 'shepherd-requirement' configuration field.


From: guix-commits
Subject: 02/09: services: nginx: Add 'shepherd-requirement' configuration field.
Date: Tue, 6 Sep 2022 11:00:08 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 8c5065c6d1036012996e4812788e48ca74bc1294
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Sep 6 16:12:56 2022 +0200

    services: nginx: Add 'shepherd-requirement' configuration field.
    
    * gnu/services/web.scm (<nginx-configuration>)[shepherd-requirement]:
    New field.
    (nginx-shepherd-service): Honor it.
    * doc/guix.texi (Web Services): Document it.
---
 doc/guix.texi        | 8 ++++++++
 gnu/services/web.scm | 7 +++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index d573695e72..20abfee772 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -28841,6 +28841,14 @@ types, or alternatively, a config file can be provided.
 @item @code{nginx} (default: @code{nginx})
 The nginx package to use.
 
+@item @code{shepherd-requirement} (default: @code{'()})
+This is a list of symbols naming Shepherd services the nginx service
+will depend on.
+
+This is useful if you would like @command{nginx} to be started after a
+back-end web server or a logging service such as Anonip has been
+started.
+
 @item @code{log-directory} (default: @code{"/var/log/nginx"})
 The directory to which NGinx will write log files.
 
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index f0c7e90cbf..b144cf7076 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -93,6 +93,7 @@
             nginx-configuration
             nginx-configuration?
             nginx-configuration-nginx
+            nginx-configuration-shepherd-requirement
             nginx-configuration-log-directory
             nginx-configuration-run-directory
             nginx-configuration-server-blocks
@@ -556,6 +557,8 @@
   nginx-configuration?
   (nginx         nginx-configuration-nginx          ;file-like
                  (default nginx))
+  (shepherd-requirement nginx-configuration-shepherd-requirement
+                        (default '()))              ;list of symbols
   (log-directory nginx-configuration-log-directory  ;string
                  (default "/var/log/nginx"))
   (run-directory nginx-configuration-run-directory  ;string
@@ -779,7 +782,7 @@ of index files."
 (define (nginx-shepherd-service config)
   (match-record config
                 <nginx-configuration>
-                (nginx file run-directory)
+                (nginx file run-directory shepherd-requirement)
    (let* ((nginx-binary (file-append nginx "/sbin/nginx"))
           (pid-file (in-vicinity run-directory "pid"))
           (nginx-action
@@ -803,7 +806,7 @@ of index files."
      (list (shepherd-service
             (provision '(nginx))
             (documentation "Run the nginx daemon.")
-            (requirement '(user-processes loopback))
+            (requirement `(user-processes loopback ,@shepherd-requirement))
             (modules `((ice-9 match)
                        ,@%default-modules))
             (start (nginx-action "-p" run-directory))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]