[PATCH v2 4/4] home-services: Add fold-home-service-types function

  • Done
  • quality assurance status badge
Details
One participant
  • Andrew Tropin
Owner
unassigned
Submitted by
Andrew Tropin
Severity
normal
Merged with
A
A
Andrew Tropin wrote on 5 Jul 2021 17:41
(address . guix-patches@gnu.org)
87y2aakrly.fsf@trop.in
* gnu/home-services.scm (parent-directory, %guix-home-root-directory,
%service-type-path, all-home-service-modules, fold-home-service-types): New
variables.
---
gnu/home-services.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/home-services.scm b/gnu/home-services.scm
index ffcee22bb8..78e5603edf 100644
--- a/gnu/home-services.scm
+++ b/gnu/home-services.scm
@@ -444,3 +444,29 @@ environment, and its configuration file, when available.")))
(define sexp->home-provenance sexp->system-provenance)
(define home-provenance system-provenance)
+
+
+;;;
+;;; Searching
+;;;
+
+(define (parent-directory directory)
+ "Get the parent directory of DIRECTORY"
+ (string-join (drop-right (string-split directory #\/) 1) "/"))
+
+(define %guix-home-root-directory
+ ;; Absolute file name of the module hierarchy.
+ (parent-directory (dirname (search-path %load-path "gnu/home-services.scm"))))
+
+(define %service-type-path
+ ;; Search path for service types.
+ (make-parameter `((,%guix-home-root-directory . "gnu/home-services"))))
+
+(define (all-home-service-modules)
+ "Return the default set of home-service modules."
+ (cons (resolve-interface '(gnu home-services))
+ (all-modules (%service-type-path)
+ #:warn warn-about-load-error)))
+
+(define* (fold-home-service-types proc seed)
+ (fold-service-types proc seed (all-home-service-modules)))
--
2.32.0
A
A
Andrew Tropin wrote on 13 Jul 2021 20:26
Merging accidentially created tickets
(address . control@debbugs.gnu.org)
87pmvmkr2k.fsf@trop.in
merge 49419 49546 49547 49548 49549
?
Your comment

This issue is archived.

To comment on this conversation send an email to 49549@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 49549
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch