From ad09bf96388acd8302dfd9ed52f8c88464064472 Mon Sep 17 00:00:00 2001 From: Tomas Volf <~@wolfsden.cz> Date: Sun, 6 Oct 2024 17:22:57 +0200 Subject: [PATCH] services: nginx-upstream-configuration: Allow file-like objects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/web.scm (emit-nginx-upstream-config): Support file-like objects. * doc/guix.texi (Web Services)[nginx-upstream-configuration]: Document it. Change-Id: I49996e358174dc77b31e3c91b908a6a72f3eb705 Signed-off-by: Ludovic Courtès --- doc/guix.texi | 11 ++++++++++- gnu/services/web.scm | 6 ++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f71f0b6561..1c39628ffa 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -32342,7 +32342,16 @@ the default port is 80, and a different port can be specified explicitly. @item @code{extra-content} -A string or list of strings to add to the upstream block. +Additional content to be appended to the upstream block. Can be a +string or file-like object or list of thereof. In case of list, each +item is prefixed with indentation and suffixed with a new line. Nested +lists are flattened. + +@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 6f77efaaf2..3997fe2ab8 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -704,8 +704,10 @@ of index files." (cons "\n" (map (lambda (line) - (simple-format #f " ~A\n" line)) - (flatten extra-content))) + `(" " ,line "\n")) + (if (list? extra-content) + extra-content + (list extra-content)))) '())) " }\n"))