summaryrefslogtreecommitdiff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-08-21 18:50:14 +0200
committerLudovic Courtès <ludo@gnu.org>2016-08-22 00:20:48 +0200
commitaa1145df8d43187f3e92aa505298cdeca4fb1191 (patch)
tree9f3db5b3bf8d8228232b59f99c7b0599f901e3f0 /gnu/system.scm
parent9af4983266ea1a1fedfe97bb122779322470275b (diff)
downloadgnu-guix-aa1145df8d43187f3e92aa505298cdeca4fb1191.tar
gnu-guix-aa1145df8d43187f3e92aa505298cdeca4fb1191.tar.gz
services: Make a single extensible 'file-systems' service.
Previously we would create one 'file-system-service-type' instead per file system. Now, we create only one instance for all the file systems. * gnu/services/base.scm (fstab-service-type)[compose]: Change to CONCATENATE. (file-system-shepherd-service): Change to return either one <shepherd-service> or #f. (file-system-service-type): Pluralize 'name'. Adjust SHEPHERD-ROOT-SERVICE-TYPE extension to above changes. Add 'compose' and 'extend'. (file-system-service): Remove. * gnu/system.scm (other-file-system-services): Rename to... (non-boot-file-system-service): ... this. Change to return a single FILE-SYSTEM-SERVICE-TYPE instance. (essential-services): Adjust accordingly.
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm16
1 files changed, 9 insertions, 7 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index d6bf6c413c..080201011c 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -178,9 +178,9 @@
;;; Services.
;;;
-(define (other-file-system-services os)
- "Return file system services for the file systems of OS that are not marked
-as 'needed-for-boot'."
+(define (non-boot-file-system-service os)
+ "Return the file system service for the file systems of OS that are not
+marked as 'needed-for-boot'."
(define file-systems
(remove file-system-needed-for-boot?
(operating-system-file-systems os)))
@@ -204,7 +204,8 @@ as 'needed-for-boot'."
(file-system-dependencies fs))
eq?))))
- (map (compose file-system-service add-dependencies) file-systems))
+ (service file-system-service-type
+ (map add-dependencies file-systems)))
(define (mapped-device-user device file-systems)
"Return a file system among FILE-SYSTEMS that uses DEVICE, or #f."
@@ -270,11 +271,11 @@ a container or that of a \"bare metal\" system."
(let* ((mappings (device-mapping-services os))
(root-fs (root-file-system-service))
- (other-fs (other-file-system-services os))
+ (other-fs (non-boot-file-system-service os))
(unmount (user-unmount-service known-fs))
(swaps (swap-services os))
(procs (user-processes-service
- (map service-parameters other-fs)))
+ (service-parameters other-fs)))
(host-name (host-name-service (operating-system-host-name os)))
(entries (operating-system-directory-base-entries
os #:container? container?)))
@@ -302,7 +303,8 @@ a container or that of a \"bare metal\" system."
(operating-system-setuid-programs os))
(service profile-service-type
(operating-system-packages os))
- (append other-fs mappings swaps
+ other-fs
+ (append mappings swaps
;; Add the firmware service, unless we are building for a
;; container.