[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/14: services: Define 'for-home'.
From: |
guix-commits |
Subject: |
04/14: services: Define 'for-home'. |
Date: |
Sun, 20 Aug 2023 17:22:25 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit dff7d2468ffe9d01b25662544af380e1794ac55a
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sun Aug 6 18:23:54 2023 +0200
services: Define 'for-home'.
* gnu/services.scm (remove-service-extensions): New procedure.
(for-home?): New syntax parameter.
(for-home): New macro.
---
gnu/services.scm | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/gnu/services.scm b/gnu/services.scm
index 109e050a23..eb9258977e 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
@@ -86,6 +86,10 @@
instantiate-missing-services
fold-services
+ remove-service-extensions
+ for-home
+ for-home?
+
service-error?
missing-value-service-error?
missing-value-service-error-type
@@ -1225,4 +1229,23 @@ TARGET-TYPE; return the root service adjusted
accordingly."
(G_ "more than one target service of type '~a'")
(service-type-name target-type)))))))))
+(define (remove-service-extensions type lst)
+ "Return TYPE, a service type, without any of the service extensions
+targeting one of the types in LST."
+ (service-type
+ (inherit type)
+ (extensions (remove (lambda (extension)
+ (memq (service-extension-target extension) lst))
+ (service-type-extensions type)))))
+
+(define-syntax-parameter for-home?
+ ;; Whether the configuration being defined is for a Home service.
+ (identifier-syntax #f))
+
+(define-syntax-rule (for-home exp ...)
+ "Mark EXP, which typically defines a service configuration, as targeting a
+Home service rather than a System service."
+ (syntax-parameterize ((for-home? (identifier-syntax #t)))
+ exp ...))
+
;;; services.scm ends here.
- branch master updated (78748c619a -> a0f5885fef), guix-commits, 2023/08/20
- 02/14: services: dicod: Pre-build the GCIDE index., guix-commits, 2023/08/20
- 04/14: services: Define 'for-home'.,
guix-commits <=
- 01/14: services: dicod: Remove Shepherd < 0.9.0 compatibility layer., guix-commits, 2023/08/20
- 06/14: home: services: mcron: Define as a mapping of the system service., guix-commits, 2023/08/20
- 08/14: home: services: Add Syncthing., guix-commits, 2023/08/20
- 09/14: home: services: ssh: Fix compilation warning with 'serialize-match-criteria'., guix-commits, 2023/08/20
- 11/14: gnu: Add python-ffmpeg-python., guix-commits, 2023/08/20
- 13/14: gnu: lttng-ust: Update to 2.13.6., guix-commits, 2023/08/20
- 14/14: doc: Fix module for "Essential Home Services"., guix-commits, 2023/08/20
- 03/14: services: syncthing: Use 'match-record'., guix-commits, 2023/08/20
- 05/14: home: services: Support mapping of System services to Home services., guix-commits, 2023/08/20
- 07/14: home: services: Add dicod., guix-commits, 2023/08/20