services: Move 'device-mapping-service' to (gnu system mapped-devices).

* gnu/services/base.scm (device-mapping-service-type)
(device-mapping-service): Move to...
* gnu/system/mapped-devices.scm (device-mapping-service-type):
(device-mapping-service): ... here.  New variables.
This commit is contained in:
Ludovic Courtès 2016-04-17 18:09:11 +02:00
parent 374f14c265
commit 1ea507bce2
2 changed files with 31 additions and 21 deletions

View File

@ -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

View File

@ -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:
@ -54,6 +60,31 @@
(close mapped-device-kind-close ;source target -> gexp
(default (const #~(const #f)))))
;;;
;;; 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.