From 99d036ce8402326352c8aa181d89c6d0c7ce85a8 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 31 Jul 2020 16:49:27 +0200 Subject: [PATCH] image: Add image-type support. * gnu/image.scm (): New record, (image-type, image-type?, image-type-name, image-type-constructor, os->image): new procedures. Signed-off-by: Mathieu Othacehe --- gnu/image.scm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/gnu/image.scm b/gnu/image.scm index dc66f2c533..a60d83b175 100644 --- a/gnu/image.scm +++ b/gnu/image.scm @@ -39,7 +39,14 @@ (define-module (gnu image) image-partitions image-compression? image-volatile-root? - image-substitutable?)) + image-substitutable? + + image-type + image-type? + image-type-name + image-type-constructor + + os->image)) ;;; @@ -84,3 +91,23 @@ (define-record-type* (default #t)) (substitutable? image-substitutable? ;boolean (default #t))) + + +;;; +;;; Image type. +;;; + +(define-record-type* + image-type make-image-type + image-type? + (name image-type-name) ;symbol + (constructor image-type-constructor)) ; -> + + +;;; +;;; Image creation. +;;; + +(define* (os->image os #:key type) + (let ((constructor (image-type-constructor type))) + (constructor os)))