From 674c339d378632bc4595cd23c38f2568593f5614 Mon Sep 17 00:00:00 2001 From: Syed Daanish Date: Fri, 9 Oct 2026 16:02:27 +0100 Subject: [PATCH] Add a test run script to flake. --- flake.nix | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 848dcfe..bb28b31 100644 --- a/flake.nix +++ b/flake.nix @@ -59,35 +59,64 @@ gnumake findutils binutils + cpio + gzip ]; buildInputs = [ + pkgs.pkgsStatic.busybox mruby ]; buildPhase = '' make \ MRUBY_CFLAGS="-I${mruby}/include" \ - MRUBY_LIBS="-L${mruby}/lib -lmruby" + MRUBY_LIBS="-L${mruby}/lib -lmruby" \ + BUSYBOX="${pkgs.pkgsStatic.busybox}/bin/busybox" ''; installPhase = '' mkdir -p $out/bin cp bin/blade $out/bin/blade + cp bin/initramfs.cpio.gz $out/bin/initramfs.cpio.gz ''; }; + + run-blade = hostPkgs.writeShellScriptBin "run-blade" '' + set -euo pipefail + exec ${hostPkgs.qemu}/bin/qemu-system-x86_64 \ + --enable-kvm \ + -m 512M \ + -smp 2 \ + -kernel "${hostPkgs.linux}/bzImage" \ + -initrd ${blade}/bin/initramfs.cpio.gz \ + -append "console=ttyS0 rdinit=/init" \ + -nographic + ''; in { packages.${system} = { default = blade; blade = blade; mruby = mruby; + run-blade = run-blade; }; - devShells.${system}.default = hostPkgs.mkShell { + apps.${system} = { + default = { + type = "app"; + program = "${run-blade}/bin/run-blade"; + }; + }; + + devShells.${system}.default = pkgs.mkShell { inputsFrom = [ blade ]; packages = with hostPkgs; [ + linux + qemu + cpio + gzip clang-tools pkg-config ccache @@ -105,6 +134,8 @@ export MRUBY_CFLAGS=-I${mruby}/include export MRUBY_LIBS="-L${mruby}/lib -lmruby" + export BUSYBOX="${pkgs.pkgsStatic.busybox}/bin/busybox" + export LINUX="${hostPkgs.linux}/bzImage" ''; }; };