From 374f14c265224048b065f2c177f80718b905201b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 17 Apr 2016 17:59:58 +0200 Subject: system: Move 'luks-device-mapping' to (gnu system mapped-devices). * gnu/system.scm (open-luks-device, close-luks-device) (luks-device-mapping): Move to... * gnu/system/mapped-devices.scm: ... here. New file. --- gnu/system/mapped-devices.scm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'gnu/system/mapped-devices.scm') diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 81afb91f86..dd8e432688 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -17,7 +17,9 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu system mapped-devices) + #:use-module (guix gexp) #:use-module (guix records) + #:autoload (gnu packages cryptsetup) (cryptsetup) #:export (mapped-device mapped-device? mapped-device-source @@ -27,7 +29,9 @@ (define-module (gnu system mapped-devices) mapped-device-kind mapped-device-kind? mapped-device-kind-open - mapped-device-kind-close)) + mapped-device-kind-close + + luks-device-mapping)) ;;; Commentary: ;;; @@ -50,4 +54,27 @@ (define-record-type* mapped-device-kind (close mapped-device-kind-close ;source target -> gexp (default (const #~(const #f))))) + +;;; +;;; Common device mappings. +;;; + +(define (open-luks-device source target) + "Return a gexp that maps SOURCE to TARGET as a LUKS device, using +'cryptsetup'." + #~(zero? (system* (string-append #$cryptsetup "/sbin/cryptsetup") + "open" "--type" "luks" + #$source #$target))) + +(define (close-luks-device source target) + "Return a gexp that closes TARGET, a LUKS device." + #~(zero? (system* (string-append #$cryptsetup "/sbin/cryptsetup") + "close" #$target))) + +(define luks-device-mapping + ;; The type of LUKS mapped devices. + (mapped-device-kind + (open open-luks-device) + (close close-luks-device))) + ;;; mapped-devices.scm ends here -- cgit v1.2.3