[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/07: vm: Use 'invoke' instead of 'system*'.
From: |
Ludovic Courtès |
Subject: |
01/07: vm: Use 'invoke' instead of 'system*'. |
Date: |
Thu, 15 Mar 2018 18:46:24 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit e1d0f2aa87b8045aacb821c2406ecdfa832c7473
Author: Ludovic Courtès <address@hidden>
Date: Thu Mar 15 16:30:41 2018 +0100
vm: Use 'invoke' instead of 'system*'.
* gnu/build/vm.scm (load-in-linux-vm, initialize-partition-table)
(create-ext-file-system, create-fat-file-system)
(install-efi, make-iso9660-image): Use 'invoke' instead
of (unless (zero? (system* ...)) (error ...)).
---
gnu/build/vm.scm | 105 +++++++++++++++++++++++++------------------------------
1 file changed, 47 insertions(+), 58 deletions(-)
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index fe003ea..7817507 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <address@hidden>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès
<address@hidden>
;;; Copyright © 2016 Christopher Allan Webber <address@hidden>
;;; Copyright © 2016, 2017 Leo Famulari <address@hidden>
;;; Copyright © 2017 Mathieu Othacehe <address@hidden>
@@ -121,10 +121,8 @@ the #:references-graphs parameter of 'derivation'."
(format #t "creating ~a image of ~,2f MiB...~%"
disk-image-format (/ disk-image-size (expt 2 20)))
(force-output)
- (unless (zero? (system* "qemu-img" "create" "-f" disk-image-format
- output
- (number->string disk-image-size)))
- (error "qemu-img failed")))
+ (invoke "qemu-img" "create" "-f" disk-image-format output
+ (number->string disk-image-size)))
(mkdir "xchg")
@@ -136,31 +134,29 @@ the #:references-graphs parameter of 'derivation'."
graph-files))
(_ #f))
- (unless (zero?
- (apply system* qemu "-nographic" "-no-reboot"
- "-m" (number->string memory-size)
- "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
- "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
- "-virtfs"
- (string-append "local,id=store_dev,path="
- (%store-directory)
- ",security_model=none,mount_tag=store")
- "-virtfs"
- (string-append "local,id=xchg_dev,path=xchg"
- ",security_model=none,mount_tag=xchg")
- "-kernel" linux
- "-initrd" initrd
- "-append" (string-append "console=ttyS0 --load="
- builder)
- (append
- (if make-disk-image?
- `("-device" "virtio-blk,drive=myhd"
- "-drive" ,(string-append "if=none,file=" output
- ",format=" disk-image-format
- ",id=myhd"))
- '())
- arch-specific-flags)))
- (error "qemu failed" qemu))
+ (apply invoke qemu "-nographic" "-no-reboot"
+ "-m" (number->string memory-size)
+ "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
+ "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
+ "-virtfs"
+ (string-append "local,id=store_dev,path="
+ (%store-directory)
+ ",security_model=none,mount_tag=store")
+ "-virtfs"
+ (string-append "local,id=xchg_dev,path=xchg"
+ ",security_model=none,mount_tag=xchg")
+ "-kernel" linux
+ "-initrd" initrd
+ "-append" (string-append "console=ttyS0 --load="
+ builder)
+ (append
+ (if make-disk-image?
+ `("-device" "virtio-blk,drive=myhd"
+ "-drive" ,(string-append "if=none,file=" output
+ ",format=" disk-image-format
+ ",id=myhd"))
+ '())
+ arch-specific-flags))
;; When MAKE-DISK-IMAGE? is true, the image is in OUTPUT already.
(unless make-disk-image?
@@ -240,10 +236,9 @@ actual /dev name based on DEVICE."
partition-size)
partitions)
", "))
- (unless (zero? (apply system* "parted" "--script"
- device "mklabel" label-type
- (options partitions offset)))
- (error "failed to create partition table"))
+ (apply invoke "parted" "--script"
+ device "mklabel" label-type
+ (options partitions offset))
;; Set the 'device' field of each partition.
(reverse
@@ -265,15 +260,14 @@ actual /dev name based on DEVICE."
"Create an ext-family file system of TYPE on PARTITION. If LABEL is true,
use that as the volume name. If UUID is true, use it as the partition UUID."
(format #t "creating ~a partition...\n" type)
- (unless (zero? (apply system* (string-append "mkfs." type)
- "-F" partition
- `(,@(if label
- `("-L" ,label)
- '())
- ,@(if uuid
- `("-U" ,(uuid->string uuid))
- '()))))
- (error "failed to create partition")))
+ (apply invoke (string-append "mkfs." type)
+ "-F" partition
+ `(,@(if label
+ `("-L" ,label)
+ '())
+ ,@(if uuid
+ `("-U" ,(uuid->string uuid))
+ '()))))
(define* (create-fat-file-system partition
#:key label uuid)
@@ -282,11 +276,8 @@ will be determined based on file system size. If LABEL is
true, use that as the
volume name."
;; FIXME: UUID is ignored!
(format #t "creating FAT partition...\n")
- (unless (zero? (apply system* "mkfs.fat" partition
- (if label
- `("-n" ,label)
- '())))
- (error "failed to create FAT partition")))
+ (apply invoke "mkfs.fat" partition
+ (if label `("-n" ,label) '())))
(define* (format-partition partition type
#:key label uuid)
@@ -388,12 +379,11 @@ SYSTEM-DIRECTORY is the name of the directory of the
'system' derivation."
(setenv "TMPDIR" esp)
(mkdir-p efi-directory)
- (unless (zero? (system* grub-mkstandalone "-O" (car efi-targets)
- "-o" (string-append efi-directory "/"
- (cdr efi-targets))
- ;; Graft the configuration file onto the image.
- (string-append "boot/grub/grub.cfg=" config-file)))
- (error "failed to create GRUB EFI image"))))
+ (invoke grub-mkstandalone "-O" (car efi-targets)
+ "-o" (string-append efi-directory "/"
+ (cdr efi-targets))
+ ;; Graft the configuration file onto the image.
+ (string-append "boot/grub/grub.cfg=" config-file))))
(define* (make-iso9660-image grub config-file os-drv target
#:key (volume-id "GuixSD_image") (volume-uuid #f)
@@ -416,8 +406,8 @@ GRUB configuration and OS-DRV as the stuff in it."
#:deduplicate? #f))
closures))
- (unless (zero? (apply system*
- `(,grub-mkrescue "-o" ,target
+ (apply invoke
+ `(,grub-mkrescue "-o" ,target
,(string-append "boot/grub/grub.cfg=" config-file)
,(string-append "gnu/store=" os-drv "/..")
"etc=/tmp/root/etc"
@@ -435,8 +425,7 @@ GRUB configuration and OS-DRV as the stuff in it."
(not (char=? #\- value)))
(iso9660-uuid->string
volume-uuid)))
- `()))))
- (error "failed to create ISO9660 image"))))
+ `())))))
(define* (initialize-hard-disk device
#:key
- branch master updated (0ab5aa0 -> 8ab10c1), Ludovic Courtès, 2018/03/15
- 04/07: gnu: Add ghc-trifecta-1.6.2.1., Ludovic Courtès, 2018/03/15
- 03/07: gnu: Add ghc-aeson-1.1.2.0., Ludovic Courtès, 2018/03/15
- 05/07: gnu: Add ghc-cheapskate-0.1.0.5., Ludovic Courtès, 2018/03/15
- 01/07: vm: Use 'invoke' instead of 'system*'.,
Ludovic Courtès <=
- 06/07: gnu: idris: Provide the right versions of dependencies., Ludovic Courtès, 2018/03/15
- 02/07: gnu: qtox: Wrap executable and fix misplaced comma (unquote)., Ludovic Courtès, 2018/03/15
- 07/07: linux-initrd: Move 'check-device-initrd-modules' elsewhere., Ludovic Courtès, 2018/03/15