summary refs log tree commit diff
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)
downloadguix-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.