diff options
-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 fd192455399..feecd2aa1cb 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 406117c4573..ee3499e5cdf 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 |