Subject: [PATCH] services: nginx: Print extra-content before the server-blocks.

From: Tomas Volf <[email-masked]>
Date: Thu, 20 Jun 2024 13:14:48 +0200

The configuration file is processed sequentially, which meant that there was
no way to set for example log format shared between the server-blocks, because
the final configuration file would have this order:

  ...
  http {
    ...
    server {
    }
    ...
    $extra-content
  }

Moving the extra-content before the serialization of server-blocks resolves
this.

* gnu/services/web.scm (default-nginx-config): Move extra-content before
server-blocks.

Change-Id: Ie8286a533dfed575abc58a0f4800706b3ad6adc2
---
While this I assume *could* be considered a backwards incompatible change, I
cannot really think of anything that it would break.

 gnu/services/web.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 406117c457..e3887d0ed8 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -768,11 +768,11 @@ (define (default-nginx-config config)
                 (number->string server-names-hash-bucket-max-size)
                 ";\n")
                "")
+           extra-content
            "\n"
            (map emit-nginx-upstream-config upstream-blocks)
            (map emit-nginx-server-config server-blocks)
-           extra-content
-           "\n}\n"))))
+           "}\n"))))

 (define %nginx-accounts
   (list (user-group (name "nginx") (system? #t))
--
2.45.1