From 61ad9bc2adc189f41128874649b115cfaadec48d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Nov 2021 18:38:33 +0100 Subject: services: Document the 'delete' clause of 'modify-services'. * doc/guix.texi (Service Reference): Mention the 'delete' clause of 'modify-services'. * gnu/services.scm (modify-services): Likewise in docstring. --- doc/guix.texi | 9 +++++++++ gnu/services.scm | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1bb139e9b0..59651f996b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35724,6 +35724,15 @@ are created using @code{define-record-type*}, you can write a succinct @var{body} that evaluates to the new service parameters by using the @code{inherit} feature that @code{define-record-type*} provides. +Clauses can also have the following form: + +@lisp +(delete @var{type}) +@end lisp + +Such a clause removes all services of the given @var{type} from +@var{services}. + @xref{Using the Configuration System}, for example usage. @end deffn diff --git a/gnu/services.scm b/gnu/services.scm index 1655218f2d..68fa4ebb63 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -319,7 +319,13 @@ the resulting list of services. Each clause must have the form: where TYPE is a service type, such as 'guix-service-type', and VARIABLE is an identifier that is bound within BODY to the value of the service of that -TYPE. Consider this example: +TYPE. + +Clauses can also remove services of a given type: + + (delete TYPE) + +Consider this example: (modify-services %base-services (guix-service-type config => -- cgit 1.4.1