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
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 18 additions and 0 deletions

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