summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/services/base.scm21
-rw-r--r--gnu/system/mapped-devices.scm31
2 files changed, 31 insertions, 21 deletions
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 6884101fd7..96bf8da02a 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -48,7 +48,6 @@
root-file-system-service
file-system-service
user-unmount-service
- device-mapping-service
swap-service
user-processes-service
session-environment-service
@@ -1175,26 +1174,6 @@ extra rules from the packages listed in @var{rules}."
(service udev-service-type
(udev-configuration (udev udev) (rules rules))))
-(define device-mapping-service-type
- (shepherd-service-type
- 'device-mapping
- (match-lambda
- ((target open close)
- (shepherd-service
- (provision (list (symbol-append 'device-mapping- (string->symbol target))))
- (requirement '(udev))
- (documentation "Map a device node using Linux's device mapper.")
- (start #~(lambda () #$open))
- (stop #~(lambda _ (not #$close)))
- (respawn? #f))))))
-
-(define (device-mapping-service target open close)
- "Return a service that maps device @var{target}, a string such as
-@code{\"home\"} (meaning @code{/dev/mapper/home}). Evaluate @var{open}, a
-gexp, to open it, and evaluate @var{close} to close it."
- (service device-mapping-service-type
- (list target open close)))
-
(define swap-service-type
(shepherd-service-type
'swap
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index dd8e432688..be2d6a4749 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -19,7 +19,10 @@
(define-module (gnu system mapped-devices)
#:use-module (guix gexp)
#:use-module (guix records)
+ #:use-module (gnu services)
+ #:use-module (gnu services shepherd)
#:autoload (gnu packages cryptsetup) (cryptsetup)
+ #:use-module (ice-9 match)
#:export (mapped-device
mapped-device?
mapped-device-source
@@ -31,6 +34,9 @@
mapped-device-kind-open
mapped-device-kind-close
+ device-mapping-service-type
+ device-mapping-service
+
luks-device-mapping))
;;; Commentary:
@@ -56,6 +62,31 @@
;;;
+;;; Device mapping as a Shepherd service.
+;;;
+
+(define device-mapping-service-type
+ (shepherd-service-type
+ 'device-mapping
+ (match-lambda
+ ((target open close)
+ (shepherd-service
+ (provision (list (symbol-append 'device-mapping- (string->symbol target))))
+ (requirement '(udev))
+ (documentation "Map a device node using Linux's device mapper.")
+ (start #~(lambda () #$open))
+ (stop #~(lambda _ (not #$close)))
+ (respawn? #f))))))
+
+(define (device-mapping-service target open close)
+ "Return a service that maps device @var{target}, a string such as
+@code{\"home\"} (meaning @code{/dev/mapper/home}). Evaluate @var{open}, a
+gexp, to open it, and evaluate @var{close} to close it."
+ (service device-mapping-service-type
+ (list target open close)))
+
+
+;;;
;;; Common device mappings.
;;;