From 4da8c19e8337cbb908d5e77cd912791846070fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 17 Apr 2016 18:26:50 +0200 Subject: [PATCH] mapped-devices: 'mapped-device-service' takes a . * gnu/system/mapped-devices.scm (device-mapping-service): Take a instead of 3 parameters. (device-mapping-service-type): Adjust accordingly. * gnu/system.scm (device-mapping-services): Adjust accordingly. --- gnu/system.scm | 10 +--------- gnu/system/mapped-devices.scm | 16 +++++++--------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/gnu/system.scm b/gnu/system.scm index b1454b262d..768ca9cab2 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -233,15 +233,7 @@ (define (operating-system-boot-mapped-devices os) (define (device-mapping-services os) "Return the list of device-mapping services for OS as a list." - (map (lambda (md) - (let* ((source (mapped-device-source md)) - (target (mapped-device-target md)) - (type (mapped-device-type md)) - (open (mapped-device-kind-open type)) - (close (mapped-device-kind-close type))) - (device-mapping-service target - (open source target) - (close source target)))) + (map device-mapping-service (operating-system-user-mapped-devices os))) (define (swap-services os) diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index be2d6a4749..2706e255c5 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -69,21 +69,19 @@ (define device-mapping-service-type (shepherd-service-type 'device-mapping (match-lambda - ((target open close) + (($ source 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))) + (start #~(lambda () #$(open source target))) + (stop #~(lambda _ (not #$(close source target)))) (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 (device-mapping-service mapped-device) + "Return a service that sets up @var{mapped-device}." + (service device-mapping-service-type mapped-device)) ;;;