From b2fef041fcfbb63d7901c25647373aeda56b026e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 4 May 2016 22:48:28 +0200 Subject: [PATCH] system: Add procedures to access user accounts and service names. * gnu/system.scm (operating-system-user-accounts) (operating-system-shepherd-service-names): New procedures. --- gnu/system.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/system.scm b/gnu/system.scm index 768ca9cab2..96ea153cd0 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -82,6 +82,8 @@ operating-system-file-systems operating-system-store-file-system operating-system-activation-script + operating-system-user-accounts + operating-system-shepherd-service-names operating-system-derivation operating-system-profile @@ -578,6 +580,22 @@ hardware-related operations as necessary when booting a Linux container." ;; BOOT is the script as a monadic value. (service-parameters boot))) +(define (operating-system-user-accounts os) + "Return the list of user accounts of OS." + (let* ((services (operating-system-services os)) + (account (fold-services services + #:target-type account-service-type))) + (filter user-account? + (service-parameters account)))) + +(define (operating-system-shepherd-service-names os) + "Return the list of Shepherd service names for OS." + (append-map shepherd-service-provision + (service-parameters + (fold-services (operating-system-services os) + #:target-type + shepherd-root-service-type)))) + (define* (operating-system-derivation os #:key container?) "Return a derivation that builds OS." (let* ((services (operating-system-services os #:container? container?))