aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sent <richard@freakingpenguin.com>2024-06-20 12:42:03 -0400
committerChristopher Baines <mail@cbaines.net>2024-06-26 15:11:52 +0100
commitda3e71f472c2335f56c3d07758715a514fdb3a9d (patch)
treeb4b6a42c4971291f4e43b03cef080130b079ae08
parentffdbf1f11ee68e127216cb6682e93b490c7e1d0d (diff)
downloadguix-da3e71f472c2335f56c3d07758715a514fdb3a9d.tar.gz
guix-da3e71f472c2335f56c3d07758715a514fdb3a9d.zip
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>
-rw-r--r--doc/guix.texi13
-rw-r--r--gnu/services/web.scm9
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