(define-module (machines portable-bios) #:use-module (gnu bootloader) ; bootloader-configuration #:use-module (gnu bootloader grub) ; grub-bootloader #:use-module (gnu system file-systems) ; file-system #:use-module (suweren system) ; %suweren-operating-system ) ;; bootloader-configuration (define bootloader-configuration* (let ((bootloader* grub-bootloader) (bootloader-targets (list "/dev/sdb")) ; TODO: generalize the target ) (bootloader-configuration (bootloader bootloader*) (targets bootloader-targets)))) ;; string -> (file-system) (define (file-systems* host-name*) (let* ((root-device-string (string-append host-name* "-root")) (root-device (file-system-label root-device-string)) (file-system-root (file-system (type "ext4") (mount-point "/") (device root-device)))) (list file-system-root))) ;; string -> record operating-system (define-public (operating-system* host-name*) (%suweren-operating-system bootloader-configuration* host-name* (file-systems* host-name*)))