aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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