GNU bug report logs -
#71586
[PATCH] services: web: Improve nginx formatting for extra-content
Previous Next
Full log
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
On 2024-06-15 23:57:12 -0400, Richard Sent wrote:
> * gnu/services/web (default-nginx-config): 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.
>
> Change-Id: Iec8614ba3cfc37292a566197e8d39b352b04846a
> ---
> gnu/services/web.scm | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/services/web.scm b/gnu/services/web.scm
> index 406117c457..094b1e4b45 100644
> --- a/gnu/services/web.scm
> +++ b/gnu/services/web.scm
> @@ -771,7 +771,12 @@ (define (default-nginx-config config)
> "\n"
> (map emit-nginx-upstream-config upstream-blocks)
> (map emit-nginx-server-config server-blocks)
> - extra-content
> + (match extra-content
> + ((? string? extra-content) extra-content)
> + ((? list? extra-content)
> + (map (lambda (line)
> + (simple-format #f " ~A\n" line))
The format here sadly prevents producing `include' directives with link to the
store, since any file-like object will be just serialized as its representation:
`("foo"
"bar"
("aa" "bb")
,(plain-file "foo" "baz"))
Will end up as:
foo
bar
(aa bb)
#<<plain-file> name: "foo" content: "baz" references: ()>
Neither the list nor the plain-file are as expected. What about doing just
this:
(match extra-content
((? string? extra-content) extra-content)
((? list? extra-content)
(map (lambda (line)
`(" " ,line "\n"))
extra-content)))
This produces the expected (in my opinion) output:
foo
bar
aabb
/gnu/store/7pz4iczjvgvn9ikpp1ip50bk6vi4sk7b-foo
Meaning you can now do things like
(extra-content `(("include " ,%some-file.conf ";")))
And it will work as expected. It already works like this for raw-content in the
nginx-server-configuration.
Thoughts?
> + extra-content)))
> "\n}\n"))))
>
> (define %nginx-accounts
>
> base-commit: 612e4dd98f7d1d015e405af9d029bede3fe3c280
> --
> 2.45.1
>
>
Have a nice day,
Tomas Volf
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 331 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.