1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

system: Add procedures to access user accounts and service names.

* gnu/system.scm (operating-system-user-accounts)
(operating-system-shepherd-service-names): New procedures.
This commit is contained in:
Ludovic Courtès
2016-05-04 22:48:28 +02:00
parent b13cf17fcf
commit b2fef041fc

View File

@@ -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?))