From 1ea507bce294d12223c35c3f8c2ae3e54a4127fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 17 Apr 2016 18:09:11 +0200 Subject: [PATCH] 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. --- gnu/services/base.scm | 21 --------------------- gnu/system/mapped-devices.scm | 31 +++++++++++++++++++++++++++++++ 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: @@ -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.