commit 030c6af5236f277210b4e2f8bd79685ad2870758
parent 30789e5d5f184a8f06a2f6eded4cf087e0a7cf19
Author: Georges Dupéron <georges.duperon@gmail.com>
Date: Fri, 7 Sep 2018 22:43:56 +0200
Trying to add a service which will run code mounted as a disk
Diffstat:
3 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1 +1,2 @@
-*.nar
-\ No newline at end of file
+/*.nar
+/signing-key.pub
+\ No newline at end of file
diff --git a/Makefile b/Makefile
@@ -1,8 +1,24 @@
-all: hello.nar /etc/guix/signing-key.pub Makefile
+tmp_image := $(shell echo $$$$)
+
+all: hello.nar signing-key.pub vm-image Makefile
+ qemu-img create -f qcow2 -o backing_file=vm-image vm-image-${tmp_image}
+# TODO: qcow2: make a derived image.
qemu-system-x86_64 -enable-kvm -m 256 \
- "$$(guix system vm-image config.scm)" \
- -drive format=raw,readonly,file=hello.nar,index=0,if=ide,index=1,media=disk \
- -drive format=raw,readonly,file=/etc/guix/signing-key.pub,index=0,if=ide,index=2,media=disk
+ vm-image-${tmp_image} \
+ -drive format=raw,readonly,file=hello.nar,index=0,if=ide,index=1,media=cdrom \
+ -drive format=raw,readonly,file=signing-key.pub,index=0,if=ide,index=2,media=cdrom
+ rm vm-image-${tmp_image}
%.nar: Makefile
guix archive --export --recursive $* > $@
+
+signing-key.pub: /etc/guix/signing-key.pub Makefile
+ cp $< $@
+ chmod +w $@
+
+.PHONY: rebuild
+rebuild: config.scm Makefile
+ ln -s "$$(guix system vm-image config.scm)" vm-image
+
+vm-image: config.scm # Makefile
+ ln -s "$$(guix system vm-image config.scm)" vm-image
diff --git a/config.scm b/config.scm
@@ -1,4 +1,12 @@
-(use-modules (gnu))
+(use-modules (gnu)
+ (gnu services shepherd))
+
+(define (my-service)
+ (shepherd-service
+ (documentation "This command is executed when the GUIX system boots.")
+ (provision '(my-stuff))
+ (start #~(lambda ()
+ (system* "seq 1000")))))
(operating-system
(bootloader
@@ -12,4 +20,6 @@
(mount-point "/")
(type "ext4"))
%base-file-systems))
+ (services (cons (my-service)
+ %base-services))
(timezone "GMT"))