www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
M.gitignore | 5+++--
MMakefile | 24++++++++++++++++++++----
Mconfig.scm | 12+++++++++++-
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"))