guix-commits
[Top][All Lists]
Advanced

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

03/04: services: web: Improve nginx formatting for extra-content.


From: guix-commits
Subject: 03/04: services: web: Improve nginx formatting for extra-content.
Date: Wed, 26 Jun 2024 10:23:59 -0400 (EDT)

cbaines pushed a commit to branch master
in repository guix.

commit da3e71f472c2335f56c3d07758715a514fdb3a9d
Author: Richard Sent <richard@freakingpenguin.com>
AuthorDate: Thu Jun 20 12:42:03 2024 -0400

    services: web: Improve nginx formatting for extra-content.
    
    When extra-content is a list, add 4 space indentation and a newline to every
    line. If it's a string, continue inserting it directly. This makes the list
    serialization behavior more consistent with other services.
    
    * gnu/services/web (default-nginx-config): Support lists.
    * doc/guix.texi (Web Services)[nginx-configuration]: Document it.
    
    Change-Id: Iec8614ba3cfc37292a566197e8d39b352b04846a
    Signed-off-by: Christopher Baines <mail@cbaines.net>
---
 doc/guix.texi        | 13 +++++++++++--
 gnu/services/web.scm |  9 ++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index fd19245539..feecd2aa1c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -32073,8 +32073,17 @@ configuration.  Values may themselves be association 
lists.
 @end lisp
 
 @item @code{extra-content} (default: @code{""})
-Extra content for the @code{http} block.  Should be string or a string
-valued G-expression.
+Additional content to be appended to the @code{http} block.  Can either
+be a value that can be lowered into a string or a list of such values.
+In the former case, it is inserted directly.  In the latter, it is
+prefixed with indentation and suffixed with a newline.  Nested lists are
+flattened into one line.
+
+@lisp
+(extra-content "include /etc/nginx/custom-config.conf;")
+(extra-content `("include /etc/nginx/custom-config.conf;"
+                 ("include " ,%custom-config.conf ";")))
+@end lisp
 
 @end table
 @end deftp
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 406117c457..ee3499e5cd 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -771,7 +771,14 @@ of index files."
            "\n"
            (map emit-nginx-upstream-config upstream-blocks)
            (map emit-nginx-server-config server-blocks)
-           extra-content
+           (match extra-content
+             ((? list? extra-content)
+              (map (lambda (line)
+                     `("    " ,line "\n"))
+                   extra-content))
+             ;; XXX: For compatibility strings and gexp's are inserted
+             ;; directly.
+             (_ extra-content))
            "\n}\n"))))
 
 (define %nginx-accounts



reply via email to

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