diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-05-04 22:48:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-05-04 23:35:55 +0200 |
commit | b2fef041fcfbb63d7901c25647373aeda56b026e (patch) | |
tree | 1487f5a848cfc0fa039e21be8d7a0f926b075cb2 | |
parent | b13cf17fcfb62e82efd7477c0da7a56b11ff4288 (diff) | |
download | guix-b2fef041fcfbb63d7901c25647373aeda56b026e.tar.gz |
system: Add procedures to access user accounts and service names.
* gnu/system.scm (operating-system-user-accounts) (operating-system-shepherd-service-names): New procedures.
-rw-r--r-- | gnu/system.scm | 18 |
1 files changed, 18 insertions, 0 deletions
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?)) |