diff options
author | Richard Sent <richard@freakingpenguin.com> | 2024-06-20 12:42:03 -0400 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-06-26 15:11:52 +0100 |
commit | da3e71f472c2335f56c3d07758715a514fdb3a9d (patch) | |
tree | b4b6a42c4971291f4e43b03cef080130b079ae08 | |
parent | ffdbf1f11ee68e127216cb6682e93b490c7e1d0d (diff) | |
download | guix-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.texi | 13 | ||||
-rw-r--r-- | 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 |