* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
@ 2018-03-04 20:00 Christopher Baines
2018-03-17 21:42 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Christopher Baines @ 2018-03-04 20:00 UTC (permalink / raw)
To: 30702
This helpful when adding content to the nginx configuration file, which isn't
supported by the record type used for the configuration. For example, like
adding proxy_cache_path configuration.
* gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
(nginx-configuration-extra-content): New field accessor.
(default-nginx-config): Add support for the extra-content field.
* doc/guix.texi (NGINX): Document the new extra-content field.
---
doc/guix.texi | 4 ++++
gnu/services/web.scm | 9 +++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 057272df4..151bc7ddd 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -15431,6 +15431,10 @@ use the size of the processors cache line.
@item @code{server-names-hash-bucket-max-size} (default: @code{#f})
Maximum bucket size for the server names hash tables.
+@item @code{extra-content} (default: @code{'()})
+Extra content for the @code{http} block. Should be a list of strings or
+G-expressions.
+
@end table
@end deffn
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index beda481b0..1f58c9b86 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -73,6 +73,7 @@
nginx-configuration-upstream-blocks
nginx-configuration-server-names-hash-bucket-size
nginx-configuration-server-names-hash-bucket-max-size
+ nginx-configuration-extra-content
nginx-configuration-file
<nginx-server-configuration>
@@ -423,6 +424,8 @@
(default #f))
(server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
(default #f))
+ (extra-content nginx-configuration-extra-content
+ (default '()))
(file nginx-configuration-file ;#f | string | file-like
(default #f)))
@@ -513,7 +516,8 @@ of index files."
(nginx log-directory run-directory
server-blocks upstream-blocks
server-names-hash-bucket-size
- server-names-hash-bucket-max-size)
+ server-names-hash-bucket-max-size
+ extra-content)
(apply mixed-text-file "nginx.conf"
(flatten
"user nginx nginx;\n"
@@ -542,7 +546,8 @@ of index files."
"\n"
(map emit-nginx-upstream-config upstream-blocks)
(map emit-nginx-server-config server-blocks)
- "}\n"
+ extra-content
+ "\n}\n"
"events {}\n"))))
(define %nginx-accounts
--
2.16.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-03-04 20:00 [bug#30702] [PATCH] services: nginx: Support extra content in the http block Christopher Baines
@ 2018-03-17 21:42 ` Ludovic Courtès
2018-03-17 23:46 ` Christopher Baines
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Ludovic Courtès @ 2018-03-17 21:42 UTC (permalink / raw)
To: Christopher Baines; +Cc: 30702
Hello,
Christopher Baines <mail@cbaines.net> skribis:
> This helpful when adding content to the nginx configuration file, which isn't
> supported by the record type used for the configuration. For example, like
> adding proxy_cache_path configuration.
>
> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
> (nginx-configuration-extra-content): New field accessor.
> (default-nginx-config): Add support for the extra-content field.
> * doc/guix.texi (NGINX): Document the new extra-content field.
> ---
> doc/guix.texi | 4 ++++
> gnu/services/web.scm | 9 +++++++--
> 2 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 057272df4..151bc7ddd 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -15431,6 +15431,10 @@ use the size of the processors cache line.
> @item @code{server-names-hash-bucket-max-size} (default: @code{#f})
> Maximum bucket size for the server names hash tables.
>
> +@item @code{extra-content} (default: @code{'()})
> +Extra content for the @code{http} block. Should be a list of strings or
> +G-expressions.
I find it surprising that it’s a list rather than a string or
string-valued gexp. Thoughts?
Otherwise I think it’s very useful!
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-03-17 21:42 ` Ludovic Courtès
@ 2018-03-17 23:46 ` Christopher Baines
2018-03-18 17:12 ` Ludovic Courtès
2018-05-18 8:54 ` Christopher Baines
2018-05-18 9:37 ` [bug#30702] " Christopher Baines
2 siblings, 1 reply; 10+ messages in thread
From: Christopher Baines @ 2018-03-17 23:46 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 30702
[-- Attachment #1: Type: text/plain, Size: 1856 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hello,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This helpful when adding content to the nginx configuration file, which isn't
>> supported by the record type used for the configuration. For example, like
>> adding proxy_cache_path configuration.
>>
>> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
>> (nginx-configuration-extra-content): New field accessor.
>> (default-nginx-config): Add support for the extra-content field.
>> * doc/guix.texi (NGINX): Document the new extra-content field.
>> ---
>> doc/guix.texi | 4 ++++
>> gnu/services/web.scm | 9 +++++++--
>> 2 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/doc/guix.texi b/doc/guix.texi
>> index 057272df4..151bc7ddd 100644
>> --- a/doc/guix.texi
>> +++ b/doc/guix.texi
>> @@ -15431,6 +15431,10 @@ use the size of the processors cache line.
>> @item @code{server-names-hash-bucket-max-size} (default: @code{#f})
>> Maximum bucket size for the server names hash tables.
>>
>> +@item @code{extra-content} (default: @code{'()})
>> +Extra content for the @code{http} block. Should be a list of strings or
>> +G-expressions.
>
> I find it surprising that it’s a list rather than a string or
> string-valued gexp. Thoughts?
Lists are used as the type for other fields in related records. I chose
a list as it's easy to add things to, but thinking about it, that's
probably true for strings and gexps as well.
Saying it can be either a string or a gexp might be a little tricky, as
string operations wouldn't work on the gexp. My familiarity with
string-valued gexps is a little limited though, I've only just started
using file-append more, as I think that's how it works. How would you go
about adding say a string to a gexp?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-03-17 23:46 ` Christopher Baines
@ 2018-03-18 17:12 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2018-03-18 17:12 UTC (permalink / raw)
To: Christopher Baines; +Cc: 30702
Christopher Baines <mail@cbaines.net> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
[...]
>>> +@item @code{extra-content} (default: @code{'()})
>>> +Extra content for the @code{http} block. Should be a list of strings or
>>> +G-expressions.
>>
>> I find it surprising that it’s a list rather than a string or
>> string-valued gexp. Thoughts?
>
> Lists are used as the type for other fields in related records. I chose
> a list as it's easy to add things to, but thinking about it, that's
> probably true for strings and gexps as well.
>
> Saying it can be either a string or a gexp might be a little tricky, as
> string operations wouldn't work on the gexp. My familiarity with
> string-valued gexps is a little limited though, I've only just started
> using file-append more, as I think that's how it works. How would you go
> about adding say a string to a gexp?
You’d have to produce build-side code that will concatenate the strings:
;; Add extra content to CONFIG.
(let ((original (nginx-extra-content config)))
(nginx-configuration
(inherit config)
(extra-content #~(string-append #$original "\nextra extra stuff"))))
HTH!
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-03-17 21:42 ` Ludovic Courtès
2018-03-17 23:46 ` Christopher Baines
@ 2018-05-18 8:54 ` Christopher Baines
2018-05-19 20:36 ` Ludovic Courtès
2018-05-18 9:37 ` [bug#30702] " Christopher Baines
2 siblings, 1 reply; 10+ messages in thread
From: Christopher Baines @ 2018-05-18 8:54 UTC (permalink / raw)
To: 30702
This helpful when adding content to the nginx configuration file, which isn't
supported by the record type used for the configuration. For example, like
adding proxy_cache_path configuration.
* gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
(nginx-configuration-extra-content): New field accessor.
(default-nginx-config): Add support for the extra-content field.
* doc/guix.texi (NGINX): Document the new extra-content field.
---
doc/guix.texi | 4 ++++
gnu/services/web.scm | 9 +++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index a12210db8..eaaf0e684 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -15786,6 +15786,10 @@ use the size of the processors cache line.
@item @code{server-names-hash-bucket-max-size} (default: @code{#f})
Maximum bucket size for the server names hash tables.
+@item @code{extra-content} (default: @code{""})
+Extra content for the @code{http} block. Should be string or a string
+valued G-expression.
+
@end table
@end deffn
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index b336a8dd3..8f55dae5e 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -73,6 +73,7 @@
nginx-configuration-upstream-blocks
nginx-configuration-server-names-hash-bucket-size
nginx-configuration-server-names-hash-bucket-max-size
+ nginx-configuration-extra-content
nginx-configuration-file
<nginx-server-configuration>
@@ -423,6 +424,8 @@
(default #f))
(server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
(default #f))
+ (extra-content nginx-configuration-extra-content
+ (default ""))
(file nginx-configuration-file ;#f | string | file-like
(default #f)))
@@ -513,7 +516,8 @@ of index files."
(nginx log-directory run-directory
server-blocks upstream-blocks
server-names-hash-bucket-size
- server-names-hash-bucket-max-size)
+ server-names-hash-bucket-max-size
+ extra-content)
(apply mixed-text-file "nginx.conf"
(flatten
"user nginx nginx;\n"
@@ -542,7 +546,8 @@ of index files."
"\n"
(map emit-nginx-upstream-config upstream-blocks)
(map emit-nginx-server-config server-blocks)
- "}\n"
+ extra-content
+ "\n}\n"
"events {}\n"))))
(define %nginx-accounts
--
2.17.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-03-17 21:42 ` Ludovic Courtès
2018-03-17 23:46 ` Christopher Baines
2018-05-18 8:54 ` Christopher Baines
@ 2018-05-18 9:37 ` Christopher Baines
2 siblings, 0 replies; 10+ messages in thread
From: Christopher Baines @ 2018-05-18 9:37 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 30702
[-- Attachment #1: Type: text/plain, Size: 1442 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hello,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This helpful when adding content to the nginx configuration file, which isn't
>> supported by the record type used for the configuration. For example, like
>> adding proxy_cache_path configuration.
>>
>> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
>> (nginx-configuration-extra-content): New field accessor.
>> (default-nginx-config): Add support for the extra-content field.
>> * doc/guix.texi (NGINX): Document the new extra-content field.
>> ---
>> doc/guix.texi | 4 ++++
>> gnu/services/web.scm | 9 +++++++--
>> 2 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/doc/guix.texi b/doc/guix.texi
>> index 057272df4..151bc7ddd 100644
>> --- a/doc/guix.texi
>> +++ b/doc/guix.texi
>> @@ -15431,6 +15431,10 @@ use the size of the processors cache line.
>> @item @code{server-names-hash-bucket-max-size} (default: @code{#f})
>> Maximum bucket size for the server names hash tables.
>>
>> +@item @code{extra-content} (default: @code{'()})
>> +Extra content for the @code{http} block. Should be a list of strings or
>> +G-expressions.
>
> I find it surprising that it’s a list rather than a string or
> string-valued gexp. Thoughts?
I've now got around to trying this out, and sent a patch that uses a
string, rather than a list.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-05-18 8:54 ` Christopher Baines
@ 2018-05-19 20:36 ` Ludovic Courtès
2018-06-11 18:09 ` Christopher Baines
0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2018-05-19 20:36 UTC (permalink / raw)
To: Christopher Baines; +Cc: 30702
Hello,
Christopher Baines <mail@cbaines.net> skribis:
> This helpful when adding content to the nginx configuration file, which isn't
> supported by the record type used for the configuration. For example, like
> adding proxy_cache_path configuration.
>
> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
> (nginx-configuration-extra-content): New field accessor.
> (default-nginx-config): Add support for the extra-content field.
> * doc/guix.texi (NGINX): Document the new extra-content field.
[...]
> +@item @code{extra-content} (default: @code{""})
> +Extra content for the @code{http} block. Should be string or a string
> +valued G-expression.
[...]
> (apply mixed-text-file "nginx.conf"
> (flatten
> "user nginx nginx;\n"
> @@ -542,7 +546,8 @@ of index files."
> "\n"
> (map emit-nginx-upstream-config upstream-blocks)
> (map emit-nginx-server-config server-blocks)
> - "}\n"
> + extra-content
> + "\n}\n"
> "events {}\n"))))
That doesn’t work if ‘extra-content’ is something like:
#~(string-append "foo" bar)
does it?
My understanding of the doc above was that it intends to allow this.
But maybe it doesn’t matter after all?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-05-19 20:36 ` Ludovic Courtès
@ 2018-06-11 18:09 ` Christopher Baines
2018-06-12 9:09 ` Ludovic Courtès
0 siblings, 1 reply; 10+ messages in thread
From: Christopher Baines @ 2018-06-11 18:09 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 30702
[-- Attachment #1: Type: text/plain, Size: 1624 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hello,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This helpful when adding content to the nginx configuration file, which isn't
>> supported by the record type used for the configuration. For example, like
>> adding proxy_cache_path configuration.
>>
>> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
>> (nginx-configuration-extra-content): New field accessor.
>> (default-nginx-config): Add support for the extra-content field.
>> * doc/guix.texi (NGINX): Document the new extra-content field.
>
> [...]
>
>> +@item @code{extra-content} (default: @code{""})
>> +Extra content for the @code{http} block. Should be string or a string
>> +valued G-expression.
>
> [...]
>
>> (apply mixed-text-file "nginx.conf"
>> (flatten
>> "user nginx nginx;\n"
>> @@ -542,7 +546,8 @@ of index files."
>> "\n"
>> (map emit-nginx-upstream-config upstream-blocks)
>> (map emit-nginx-server-config server-blocks)
>> - "}\n"
>> + extra-content
>> + "\n}\n"
>> "events {}\n"))))
>
> That doesn’t work if ‘extra-content’ is something like:
>
> #~(string-append "foo" bar)
>
> does it?
>
> My understanding of the doc above was that it intends to allow this.
> But maybe it doesn’t matter after all?
So... I've finally got back around to looking at this, and as far as I
can see, it does work. extra-content is passed as one of the arguments
to mixed-text-file, which accepts G-exp things.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#30702] [PATCH] services: nginx: Support extra content in the http block.
2018-06-11 18:09 ` Christopher Baines
@ 2018-06-12 9:09 ` Ludovic Courtès
2018-06-12 20:22 ` bug#30702: " Christopher Baines
0 siblings, 1 reply; 10+ messages in thread
From: Ludovic Courtès @ 2018-06-12 9:09 UTC (permalink / raw)
To: Christopher Baines; +Cc: 30702
Christopher Baines <mail@cbaines.net> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello,
>>
>> Christopher Baines <mail@cbaines.net> skribis:
>>
>>> This helpful when adding content to the nginx configuration file, which isn't
>>> supported by the record type used for the configuration. For example, like
>>> adding proxy_cache_path configuration.
>>>
>>> * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field.
>>> (nginx-configuration-extra-content): New field accessor.
>>> (default-nginx-config): Add support for the extra-content field.
>>> * doc/guix.texi (NGINX): Document the new extra-content field.
>>
>> [...]
>>
>>> +@item @code{extra-content} (default: @code{""})
>>> +Extra content for the @code{http} block. Should be string or a string
>>> +valued G-expression.
>>
>> [...]
>>
>>> (apply mixed-text-file "nginx.conf"
>>> (flatten
>>> "user nginx nginx;\n"
>>> @@ -542,7 +546,8 @@ of index files."
>>> "\n"
>>> (map emit-nginx-upstream-config upstream-blocks)
>>> (map emit-nginx-server-config server-blocks)
>>> - "}\n"
>>> + extra-content
>>> + "\n}\n"
>>> "events {}\n"))))
>>
>> That doesn’t work if ‘extra-content’ is something like:
>>
>> #~(string-append "foo" bar)
>>
>> does it?
>>
>> My understanding of the doc above was that it intends to allow this.
>> But maybe it doesn’t matter after all?
>
> So... I've finally got back around to looking at this, and as far as I
> can see, it does work. extra-content is passed as one of the arguments
> to mixed-text-file, which accepts G-exp things.
Alright, sounds good then!
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#30702: [PATCH] services: nginx: Support extra content in the http block.
2018-06-12 9:09 ` Ludovic Courtès
@ 2018-06-12 20:22 ` Christopher Baines
0 siblings, 0 replies; 10+ messages in thread
From: Christopher Baines @ 2018-06-12 20:22 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 30702-done
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Alright, sounds good then!
Great, I've pushed this patch now :)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-06-12 20:23 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-04 20:00 [bug#30702] [PATCH] services: nginx: Support extra content in the http block Christopher Baines
2018-03-17 21:42 ` Ludovic Courtès
2018-03-17 23:46 ` Christopher Baines
2018-03-18 17:12 ` Ludovic Courtès
2018-05-18 8:54 ` Christopher Baines
2018-05-19 20:36 ` Ludovic Courtès
2018-06-11 18:09 ` Christopher Baines
2018-06-12 9:09 ` Ludovic Courtès
2018-06-12 20:22 ` bug#30702: " Christopher Baines
2018-05-18 9:37 ` [bug#30702] " Christopher Baines
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).