summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/system.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index 768ca9cab21..96ea153cd06 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -82,6 +82,8 @@
82 operating-system-file-systems 82 operating-system-file-systems
83 operating-system-store-file-system 83 operating-system-store-file-system
84 operating-system-activation-script 84 operating-system-activation-script
85 operating-system-user-accounts
86 operating-system-shepherd-service-names
85 87
86 operating-system-derivation 88 operating-system-derivation
87 operating-system-profile 89 operating-system-profile
@@ -578,6 +580,22 @@ hardware-related operations as necessary when booting a Linux container."
578 ;; BOOT is the script as a monadic value. 580 ;; BOOT is the script as a monadic value.
579 (service-parameters boot))) 581 (service-parameters boot)))
580 582
583(define (operating-system-user-accounts os)
584 "Return the list of user accounts of OS."
585 (let* ((services (operating-system-services os))
586 (account (fold-services services
587 #:target-type account-service-type)))
588 (filter user-account?
589 (service-parameters account))))
590
591(define (operating-system-shepherd-service-names os)
592 "Return the list of Shepherd service names for OS."
593 (append-map shepherd-service-provision
594 (service-parameters
595 (fold-services (operating-system-services os)
596 #:target-type
597 shepherd-root-service-type))))
598
581(define* (operating-system-derivation os #:key container?) 599(define* (operating-system-derivation os #:key container?)
582 "Return a derivation that builds OS." 600 "Return a derivation that builds OS."
583 (let* ((services (operating-system-services os #:container? container?)) 601 (let* ((services (operating-system-services os #:container? container?))